mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	ASoC: Updates for v6.9
This has been quite a small release, there's a lot of driver specific
 cleanups and minor enhancements but hardly anything on the core and only
 one new driver.  Highlights include:
 
  - SoundWire support for AMD ACP 6.3 systems.
  - Support for reporting version information for AVS firmware.
  - Support DSPless mode for Intel Soundwire systems.
  - Support for configuring CS35L56 amplifiers using EFI calibration
    data.
  - Log which component is being operated on as part of power management
    trace events.
  - Support for Microchip SAM9x7, NXP i.MX95 and Qualcomm WCD939x
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmXvE1AACgkQJNaLcl1U
 h9B15Qf8CrS5zHsD54bvTcumkDgbJ8Dl9f5qz4UN/AX0mcZ1UJU6sQ0HxIGEtlPc
 26pneHV9ZA0wSPw432NBpwcfe7AsWASmKUf6S2hsj4LMvnoj75iiZum8TE71ior7
 QI9ARnNipB1tHk7Kmgs/pe+CqX3hhCVqYUI9w5fMIj05T5qwYbqCERws6JA2Uw97
 6fb5CgI2uRYTShVVmYsE/FlxXmZqNN4NnNxlVvUSM5TE3Tayf+BCEqhpwuh59Pt/
 G+mZfj3eof0HdjGPQbLRPOWQOa3bT8gmT89OlbmmMf17+975pgShBbARzkv41vk1
 ifr6muHweaDLD7gloS/HUr4JRo9Daw==
 =ZYC5
 -----END PGP SIGNATURE-----
Merge tag 'asoc-v6.9' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Updates for v6.9
This has been quite a small release, there's a lot of driver specific
cleanups and minor enhancements but hardly anything on the core and only
one new driver.  Highlights include:
 - SoundWire support for AMD ACP 6.3 systems.
 - Support for reporting version information for AVS firmware.
 - Support DSPless mode for Intel Soundwire systems.
 - Support for configuring CS35L56 amplifiers using EFI calibration
   data.
 - Log which component is being operated on as part of power management
   trace events.
 - Support for Microchip SAM9x7, NXP i.MX95 and Qualcomm WCD939x
			
			
This commit is contained in:
		
						commit
						f5d9ddf121
					
				
					 1362 changed files with 23844 additions and 8657 deletions
				
			
		
							
								
								
									
										11
									
								
								.mailmap
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								.mailmap
									
									
									
									
									
								
							| 
						 | 
					@ -191,10 +191,11 @@ Gao Xiang <xiang@kernel.org> <gaoxiang25@huawei.com>
 | 
				
			||||||
Gao Xiang <xiang@kernel.org> <hsiangkao@aol.com>
 | 
					Gao Xiang <xiang@kernel.org> <hsiangkao@aol.com>
 | 
				
			||||||
Gao Xiang <xiang@kernel.org> <hsiangkao@linux.alibaba.com>
 | 
					Gao Xiang <xiang@kernel.org> <hsiangkao@linux.alibaba.com>
 | 
				
			||||||
Gao Xiang <xiang@kernel.org> <hsiangkao@redhat.com>
 | 
					Gao Xiang <xiang@kernel.org> <hsiangkao@redhat.com>
 | 
				
			||||||
Geliang Tang <geliang.tang@linux.dev> <geliang.tang@suse.com>
 | 
					Geliang Tang <geliang@kernel.org> <geliang.tang@linux.dev>
 | 
				
			||||||
Geliang Tang <geliang.tang@linux.dev> <geliangtang@xiaomi.com>
 | 
					Geliang Tang <geliang@kernel.org> <geliang.tang@suse.com>
 | 
				
			||||||
Geliang Tang <geliang.tang@linux.dev> <geliangtang@gmail.com>
 | 
					Geliang Tang <geliang@kernel.org> <geliangtang@xiaomi.com>
 | 
				
			||||||
Geliang Tang <geliang.tang@linux.dev> <geliangtang@163.com>
 | 
					Geliang Tang <geliang@kernel.org> <geliangtang@gmail.com>
 | 
				
			||||||
 | 
					Geliang Tang <geliang@kernel.org> <geliangtang@163.com>
 | 
				
			||||||
Georgi Djakov <djakov@kernel.org> <georgi.djakov@linaro.org>
 | 
					Georgi Djakov <djakov@kernel.org> <georgi.djakov@linaro.org>
 | 
				
			||||||
Gerald Schaefer <gerald.schaefer@linux.ibm.com> <geraldsc@de.ibm.com>
 | 
					Gerald Schaefer <gerald.schaefer@linux.ibm.com> <geraldsc@de.ibm.com>
 | 
				
			||||||
Gerald Schaefer <gerald.schaefer@linux.ibm.com> <gerald.schaefer@de.ibm.com>
 | 
					Gerald Schaefer <gerald.schaefer@linux.ibm.com> <gerald.schaefer@de.ibm.com>
 | 
				
			||||||
| 
						 | 
					@ -289,6 +290,7 @@ Johan Hovold <johan@kernel.org> <johan@hovoldconsulting.com>
 | 
				
			||||||
John Crispin <john@phrozen.org> <blogic@openwrt.org>
 | 
					John Crispin <john@phrozen.org> <blogic@openwrt.org>
 | 
				
			||||||
John Fastabend <john.fastabend@gmail.com> <john.r.fastabend@intel.com>
 | 
					John Fastabend <john.fastabend@gmail.com> <john.r.fastabend@intel.com>
 | 
				
			||||||
John Keeping <john@keeping.me.uk> <john@metanate.com>
 | 
					John Keeping <john@keeping.me.uk> <john@metanate.com>
 | 
				
			||||||
 | 
					John Moon <john@jmoon.dev> <quic_johmoo@quicinc.com>
 | 
				
			||||||
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
 | 
					John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
 | 
				
			||||||
John Stultz <johnstul@us.ibm.com>
 | 
					John Stultz <johnstul@us.ibm.com>
 | 
				
			||||||
<jon.toppins+linux@gmail.com> <jtoppins@cumulusnetworks.com>
 | 
					<jon.toppins+linux@gmail.com> <jtoppins@cumulusnetworks.com>
 | 
				
			||||||
| 
						 | 
					@ -344,6 +346,7 @@ Leonid I Ananiev <leonid.i.ananiev@intel.com>
 | 
				
			||||||
Leon Romanovsky <leon@kernel.org> <leon@leon.nu>
 | 
					Leon Romanovsky <leon@kernel.org> <leon@leon.nu>
 | 
				
			||||||
Leon Romanovsky <leon@kernel.org> <leonro@mellanox.com>
 | 
					Leon Romanovsky <leon@kernel.org> <leonro@mellanox.com>
 | 
				
			||||||
Leon Romanovsky <leon@kernel.org> <leonro@nvidia.com>
 | 
					Leon Romanovsky <leon@kernel.org> <leonro@nvidia.com>
 | 
				
			||||||
 | 
					Leo Yan <leo.yan@linux.dev> <leo.yan@linaro.org>
 | 
				
			||||||
Liam Mark <quic_lmark@quicinc.com> <lmark@codeaurora.org>
 | 
					Liam Mark <quic_lmark@quicinc.com> <lmark@codeaurora.org>
 | 
				
			||||||
Linas Vepstas <linas@austin.ibm.com>
 | 
					Linas Vepstas <linas@austin.ibm.com>
 | 
				
			||||||
Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@ascom.ch>
 | 
					Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@ascom.ch>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										13
									
								
								CREDITS
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								CREDITS
									
									
									
									
									
								
							| 
						 | 
					@ -2161,6 +2161,19 @@ N: Mike Kravetz
 | 
				
			||||||
E: mike.kravetz@oracle.com
 | 
					E: mike.kravetz@oracle.com
 | 
				
			||||||
D: Maintenance and development of the hugetlb subsystem
 | 
					D: Maintenance and development of the hugetlb subsystem
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					N: Seth Jennings
 | 
				
			||||||
 | 
					E: sjenning@redhat.com
 | 
				
			||||||
 | 
					D: Creation and maintenance of zswap
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					N: Dan Streetman
 | 
				
			||||||
 | 
					E: ddstreet@ieee.org
 | 
				
			||||||
 | 
					D: Maintenance and development of zswap
 | 
				
			||||||
 | 
					D: Creation and maintenance of the zpool API
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					N: Vitaly Wool
 | 
				
			||||||
 | 
					E: vitaly.wool@konsulko.com
 | 
				
			||||||
 | 
					D: Maintenance and development of zswap
 | 
				
			||||||
 | 
					
 | 
				
			||||||
N: Andreas S. Krebs
 | 
					N: Andreas S. Krebs
 | 
				
			||||||
E: akrebs@altavista.net
 | 
					E: akrebs@altavista.net
 | 
				
			||||||
D: CYPRESS CY82C693 chipset IDE, Digital's PC-Alpha 164SX boards
 | 
					D: CYPRESS CY82C693 chipset IDE, Digital's PC-Alpha 164SX boards
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										8
									
								
								Documentation/ABI/testing/sysfs-bus-pci-devices-avs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								Documentation/ABI/testing/sysfs-bus-pci-devices-avs
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,8 @@
 | 
				
			||||||
 | 
					What:		/sys/devices/pci0000:00/<dev>/avs/fw_version
 | 
				
			||||||
 | 
					Date:		February 2024
 | 
				
			||||||
 | 
					Contact:	Cezary Rojewski <cezary.rojewski@intel.com>
 | 
				
			||||||
 | 
					Description:
 | 
				
			||||||
 | 
							Version of AudioDSP firmware ASoC avs driver is communicating
 | 
				
			||||||
 | 
							with.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							Format: %d.%d.%d.%d, type:major:minor:build.
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
What:		/sys/class/<iface>/queues/rx-<queue>/rps_cpus
 | 
					What:		/sys/class/net/<iface>/queues/rx-<queue>/rps_cpus
 | 
				
			||||||
Date:		March 2010
 | 
					Date:		March 2010
 | 
				
			||||||
KernelVersion:	2.6.35
 | 
					KernelVersion:	2.6.35
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,7 @@ Description:
 | 
				
			||||||
		network device queue. Possible values depend on the number
 | 
							network device queue. Possible values depend on the number
 | 
				
			||||||
		of available CPU(s) in the system.
 | 
							of available CPU(s) in the system.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/queues/rx-<queue>/rps_flow_cnt
 | 
					What:		/sys/class/net/<iface>/queues/rx-<queue>/rps_flow_cnt
 | 
				
			||||||
Date:		April 2010
 | 
					Date:		April 2010
 | 
				
			||||||
KernelVersion:	2.6.35
 | 
					KernelVersion:	2.6.35
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -16,7 +16,7 @@ Description:
 | 
				
			||||||
		Number of Receive Packet Steering flows being currently
 | 
							Number of Receive Packet Steering flows being currently
 | 
				
			||||||
		processed by this particular network device receive queue.
 | 
							processed by this particular network device receive queue.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/queues/tx-<queue>/tx_timeout
 | 
					What:		/sys/class/net/<iface>/queues/tx-<queue>/tx_timeout
 | 
				
			||||||
Date:		November 2011
 | 
					Date:		November 2011
 | 
				
			||||||
KernelVersion:	3.3
 | 
					KernelVersion:	3.3
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -24,7 +24,7 @@ Description:
 | 
				
			||||||
		Indicates the number of transmit timeout events seen by this
 | 
							Indicates the number of transmit timeout events seen by this
 | 
				
			||||||
		network interface transmit queue.
 | 
							network interface transmit queue.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/queues/tx-<queue>/tx_maxrate
 | 
					What:		/sys/class/net/<iface>/queues/tx-<queue>/tx_maxrate
 | 
				
			||||||
Date:		March 2015
 | 
					Date:		March 2015
 | 
				
			||||||
KernelVersion:	4.1
 | 
					KernelVersion:	4.1
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -32,7 +32,7 @@ Description:
 | 
				
			||||||
		A Mbps max-rate set for the queue, a value of zero means disabled,
 | 
							A Mbps max-rate set for the queue, a value of zero means disabled,
 | 
				
			||||||
		default is disabled.
 | 
							default is disabled.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/queues/tx-<queue>/xps_cpus
 | 
					What:		/sys/class/net/<iface>/queues/tx-<queue>/xps_cpus
 | 
				
			||||||
Date:		November 2010
 | 
					Date:		November 2010
 | 
				
			||||||
KernelVersion:	2.6.38
 | 
					KernelVersion:	2.6.38
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -42,7 +42,7 @@ Description:
 | 
				
			||||||
		network device transmit queue. Possible values depend on the
 | 
							network device transmit queue. Possible values depend on the
 | 
				
			||||||
		number of available CPU(s) in the system.
 | 
							number of available CPU(s) in the system.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/queues/tx-<queue>/xps_rxqs
 | 
					What:		/sys/class/net/<iface>/queues/tx-<queue>/xps_rxqs
 | 
				
			||||||
Date:		June 2018
 | 
					Date:		June 2018
 | 
				
			||||||
KernelVersion:	4.18.0
 | 
					KernelVersion:	4.18.0
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -53,7 +53,7 @@ Description:
 | 
				
			||||||
		number of available receive queue(s) in the network device.
 | 
							number of available receive queue(s) in the network device.
 | 
				
			||||||
		Default is disabled.
 | 
							Default is disabled.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/hold_time
 | 
					What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/hold_time
 | 
				
			||||||
Date:		November 2011
 | 
					Date:		November 2011
 | 
				
			||||||
KernelVersion:	3.3
 | 
					KernelVersion:	3.3
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -62,7 +62,7 @@ Description:
 | 
				
			||||||
		of this particular network device transmit queue.
 | 
							of this particular network device transmit queue.
 | 
				
			||||||
		Default value is 1000.
 | 
							Default value is 1000.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/inflight
 | 
					What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/inflight
 | 
				
			||||||
Date:		November 2011
 | 
					Date:		November 2011
 | 
				
			||||||
KernelVersion:	3.3
 | 
					KernelVersion:	3.3
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -70,7 +70,7 @@ Description:
 | 
				
			||||||
		Indicates the number of bytes (objects) in flight on this
 | 
							Indicates the number of bytes (objects) in flight on this
 | 
				
			||||||
		network device transmit queue.
 | 
							network device transmit queue.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit
 | 
					What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit
 | 
				
			||||||
Date:		November 2011
 | 
					Date:		November 2011
 | 
				
			||||||
KernelVersion:	3.3
 | 
					KernelVersion:	3.3
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -79,7 +79,7 @@ Description:
 | 
				
			||||||
		on this network device transmit queue. This value is clamped
 | 
							on this network device transmit queue. This value is clamped
 | 
				
			||||||
		to be within the bounds defined by limit_max and limit_min.
 | 
							to be within the bounds defined by limit_max and limit_min.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit_max
 | 
					What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit_max
 | 
				
			||||||
Date:		November 2011
 | 
					Date:		November 2011
 | 
				
			||||||
KernelVersion:	3.3
 | 
					KernelVersion:	3.3
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -88,7 +88,7 @@ Description:
 | 
				
			||||||
		queued on this network device transmit queue. See
 | 
							queued on this network device transmit queue. See
 | 
				
			||||||
		include/linux/dynamic_queue_limits.h for the default value.
 | 
							include/linux/dynamic_queue_limits.h for the default value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/queues/tx-<queue>/byte_queue_limits/limit_min
 | 
					What:		/sys/class/net/<iface>/queues/tx-<queue>/byte_queue_limits/limit_min
 | 
				
			||||||
Date:		November 2011
 | 
					Date:		November 2011
 | 
				
			||||||
KernelVersion:	3.3
 | 
					KernelVersion:	3.3
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/collisions
 | 
					What:		/sys/class/net/<iface>/statistics/collisions
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,7 @@ Description:
 | 
				
			||||||
		Indicates the number of collisions seen by this network device.
 | 
							Indicates the number of collisions seen by this network device.
 | 
				
			||||||
		This value might not be relevant with all MAC layers.
 | 
							This value might not be relevant with all MAC layers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/multicast
 | 
					What:		/sys/class/net/<iface>/statistics/multicast
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -14,7 +14,7 @@ Description:
 | 
				
			||||||
		Indicates the number of multicast packets received by this
 | 
							Indicates the number of multicast packets received by this
 | 
				
			||||||
		network device.
 | 
							network device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/rx_bytes
 | 
					What:		/sys/class/net/<iface>/statistics/rx_bytes
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,7 @@ Description:
 | 
				
			||||||
		See the network driver for the exact meaning of when this
 | 
							See the network driver for the exact meaning of when this
 | 
				
			||||||
		value is incremented.
 | 
							value is incremented.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/rx_compressed
 | 
					What:		/sys/class/net/<iface>/statistics/rx_compressed
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -32,7 +32,7 @@ Description:
 | 
				
			||||||
		network device. This value might only be relevant for interfaces
 | 
							network device. This value might only be relevant for interfaces
 | 
				
			||||||
		that support packet compression (e.g: PPP).
 | 
							that support packet compression (e.g: PPP).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/rx_crc_errors
 | 
					What:		/sys/class/net/<iface>/statistics/rx_crc_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -41,7 +41,7 @@ Description:
 | 
				
			||||||
		by this network device. Note that the specific meaning might
 | 
							by this network device. Note that the specific meaning might
 | 
				
			||||||
		depend on the MAC layer used by the interface.
 | 
							depend on the MAC layer used by the interface.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/rx_dropped
 | 
					What:		/sys/class/net/<iface>/statistics/rx_dropped
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -51,7 +51,7 @@ Description:
 | 
				
			||||||
		packet processing. See the network driver for the exact
 | 
							packet processing. See the network driver for the exact
 | 
				
			||||||
		meaning of this value.
 | 
							meaning of this value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/rx_errors
 | 
					What:		/sys/class/net/<iface>/statistics/rx_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -59,7 +59,7 @@ Description:
 | 
				
			||||||
		Indicates the number of receive errors on this network device.
 | 
							Indicates the number of receive errors on this network device.
 | 
				
			||||||
		See the network driver for the exact meaning of this value.
 | 
							See the network driver for the exact meaning of this value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/rx_fifo_errors
 | 
					What:		/sys/class/net/<iface>/statistics/rx_fifo_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -68,7 +68,7 @@ Description:
 | 
				
			||||||
		network device. See the network driver for the exact
 | 
							network device. See the network driver for the exact
 | 
				
			||||||
		meaning of this value.
 | 
							meaning of this value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/rx_frame_errors
 | 
					What:		/sys/class/net/<iface>/statistics/rx_frame_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -78,7 +78,7 @@ Description:
 | 
				
			||||||
		on the MAC layer protocol used. See the network driver for
 | 
							on the MAC layer protocol used. See the network driver for
 | 
				
			||||||
		the exact meaning of this value.
 | 
							the exact meaning of this value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/rx_length_errors
 | 
					What:		/sys/class/net/<iface>/statistics/rx_length_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -87,7 +87,7 @@ Description:
 | 
				
			||||||
		error, oversized or undersized. See the network driver for the
 | 
							error, oversized or undersized. See the network driver for the
 | 
				
			||||||
		exact meaning of this value.
 | 
							exact meaning of this value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/rx_missed_errors
 | 
					What:		/sys/class/net/<iface>/statistics/rx_missed_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -96,7 +96,7 @@ Description:
 | 
				
			||||||
		due to lack of capacity in the receive side. See the network
 | 
							due to lack of capacity in the receive side. See the network
 | 
				
			||||||
		driver for the exact meaning of this value.
 | 
							driver for the exact meaning of this value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/rx_nohandler
 | 
					What:		/sys/class/net/<iface>/statistics/rx_nohandler
 | 
				
			||||||
Date:		February 2016
 | 
					Date:		February 2016
 | 
				
			||||||
KernelVersion:	4.6
 | 
					KernelVersion:	4.6
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -104,7 +104,7 @@ Description:
 | 
				
			||||||
		Indicates the number of received packets that were dropped on
 | 
							Indicates the number of received packets that were dropped on
 | 
				
			||||||
		an inactive device by the network core.
 | 
							an inactive device by the network core.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/rx_over_errors
 | 
					What:		/sys/class/net/<iface>/statistics/rx_over_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -114,7 +114,7 @@ Description:
 | 
				
			||||||
		(e.g: larger than MTU). See the network driver for the exact
 | 
							(e.g: larger than MTU). See the network driver for the exact
 | 
				
			||||||
		meaning of this value.
 | 
							meaning of this value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/rx_packets
 | 
					What:		/sys/class/net/<iface>/statistics/rx_packets
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -122,7 +122,7 @@ Description:
 | 
				
			||||||
		Indicates the total number of good packets received by this
 | 
							Indicates the total number of good packets received by this
 | 
				
			||||||
		network device.
 | 
							network device.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/tx_aborted_errors
 | 
					What:		/sys/class/net/<iface>/statistics/tx_aborted_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -132,7 +132,7 @@ Description:
 | 
				
			||||||
		a medium collision). See the network driver for the exact
 | 
							a medium collision). See the network driver for the exact
 | 
				
			||||||
		meaning of this value.
 | 
							meaning of this value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/tx_bytes
 | 
					What:		/sys/class/net/<iface>/statistics/tx_bytes
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -143,7 +143,7 @@ Description:
 | 
				
			||||||
		transmitted packets or all packets that have been queued for
 | 
							transmitted packets or all packets that have been queued for
 | 
				
			||||||
		transmission.
 | 
							transmission.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/tx_carrier_errors
 | 
					What:		/sys/class/net/<iface>/statistics/tx_carrier_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -152,7 +152,7 @@ Description:
 | 
				
			||||||
		because of carrier errors (e.g: physical link down). See the
 | 
							because of carrier errors (e.g: physical link down). See the
 | 
				
			||||||
		network driver for the exact meaning of this value.
 | 
							network driver for the exact meaning of this value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/tx_compressed
 | 
					What:		/sys/class/net/<iface>/statistics/tx_compressed
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -161,7 +161,7 @@ Description:
 | 
				
			||||||
		this might only be relevant for devices that support
 | 
							this might only be relevant for devices that support
 | 
				
			||||||
		compression (e.g: PPP).
 | 
							compression (e.g: PPP).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/tx_dropped
 | 
					What:		/sys/class/net/<iface>/statistics/tx_dropped
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -170,7 +170,7 @@ Description:
 | 
				
			||||||
		See the driver for the exact reasons as to why the packets were
 | 
							See the driver for the exact reasons as to why the packets were
 | 
				
			||||||
		dropped.
 | 
							dropped.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/tx_errors
 | 
					What:		/sys/class/net/<iface>/statistics/tx_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -179,7 +179,7 @@ Description:
 | 
				
			||||||
		a network device. See the driver for the exact reasons as to
 | 
							a network device. See the driver for the exact reasons as to
 | 
				
			||||||
		why the packets were dropped.
 | 
							why the packets were dropped.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/tx_fifo_errors
 | 
					What:		/sys/class/net/<iface>/statistics/tx_fifo_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -188,7 +188,7 @@ Description:
 | 
				
			||||||
		FIFO error. See the driver for the exact reasons as to why the
 | 
							FIFO error. See the driver for the exact reasons as to why the
 | 
				
			||||||
		packets were dropped.
 | 
							packets were dropped.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/tx_heartbeat_errors
 | 
					What:		/sys/class/net/<iface>/statistics/tx_heartbeat_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -197,7 +197,7 @@ Description:
 | 
				
			||||||
		reported as heartbeat errors. See the driver for the exact
 | 
							reported as heartbeat errors. See the driver for the exact
 | 
				
			||||||
		reasons as to why the packets were dropped.
 | 
							reasons as to why the packets were dropped.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/tx_packets
 | 
					What:		/sys/class/net/<iface>/statistics/tx_packets
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					@ -206,7 +206,7 @@ Description:
 | 
				
			||||||
		device. See the driver for whether this reports the number of all
 | 
							device. See the driver for whether this reports the number of all
 | 
				
			||||||
		attempted or successful transmissions.
 | 
							attempted or successful transmissions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/class/<iface>/statistics/tx_window_errors
 | 
					What:		/sys/class/net/<iface>/statistics/tx_window_errors
 | 
				
			||||||
Date:		April 2005
 | 
					Date:		April 2005
 | 
				
			||||||
KernelVersion:	2.6.12
 | 
					KernelVersion:	2.6.12
 | 
				
			||||||
Contact:	netdev@vger.kernel.org
 | 
					Contact:	netdev@vger.kernel.org
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/in0_input
 | 
					What:		/sys/bus/pci/drivers/i915/.../hwmon/hwmon<i>/in0_input
 | 
				
			||||||
Date:		February 2023
 | 
					Date:		February 2023
 | 
				
			||||||
KernelVersion:	6.2
 | 
					KernelVersion:	6.2
 | 
				
			||||||
Contact:	intel-gfx@lists.freedesktop.org
 | 
					Contact:	intel-gfx@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,7 @@ Description:	RO. Current Voltage in millivolt.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Only supported for particular Intel i915 graphics platforms.
 | 
							Only supported for particular Intel i915 graphics platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/power1_max
 | 
					What:		/sys/bus/pci/drivers/i915/.../hwmon/hwmon<i>/power1_max
 | 
				
			||||||
Date:		February 2023
 | 
					Date:		February 2023
 | 
				
			||||||
KernelVersion:	6.2
 | 
					KernelVersion:	6.2
 | 
				
			||||||
Contact:	intel-gfx@lists.freedesktop.org
 | 
					Contact:	intel-gfx@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					@ -20,7 +20,7 @@ Description:	RW. Card reactive sustained  (PL1/Tau) power limit in microwatts.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Only supported for particular Intel i915 graphics platforms.
 | 
							Only supported for particular Intel i915 graphics platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/power1_rated_max
 | 
					What:		/sys/bus/pci/drivers/i915/.../hwmon/hwmon<i>/power1_rated_max
 | 
				
			||||||
Date:		February 2023
 | 
					Date:		February 2023
 | 
				
			||||||
KernelVersion:	6.2
 | 
					KernelVersion:	6.2
 | 
				
			||||||
Contact:	intel-gfx@lists.freedesktop.org
 | 
					Contact:	intel-gfx@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					@ -28,7 +28,7 @@ Description:	RO. Card default power limit (default TDP setting).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Only supported for particular Intel i915 graphics platforms.
 | 
							Only supported for particular Intel i915 graphics platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/power1_max_interval
 | 
					What:		/sys/bus/pci/drivers/i915/.../hwmon/hwmon<i>/power1_max_interval
 | 
				
			||||||
Date:		February 2023
 | 
					Date:		February 2023
 | 
				
			||||||
KernelVersion:	6.2
 | 
					KernelVersion:	6.2
 | 
				
			||||||
Contact:	intel-gfx@lists.freedesktop.org
 | 
					Contact:	intel-gfx@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					@ -37,7 +37,7 @@ Description:	RW. Sustained power limit interval (Tau in PL1/Tau) in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Only supported for particular Intel i915 graphics platforms.
 | 
							Only supported for particular Intel i915 graphics platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/power1_crit
 | 
					What:		/sys/bus/pci/drivers/i915/.../hwmon/hwmon<i>/power1_crit
 | 
				
			||||||
Date:		February 2023
 | 
					Date:		February 2023
 | 
				
			||||||
KernelVersion:	6.2
 | 
					KernelVersion:	6.2
 | 
				
			||||||
Contact:	intel-gfx@lists.freedesktop.org
 | 
					Contact:	intel-gfx@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					@ -50,7 +50,7 @@ Description:	RW. Card reactive critical (I1) power limit in microwatts.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Only supported for particular Intel i915 graphics platforms.
 | 
							Only supported for particular Intel i915 graphics platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/curr1_crit
 | 
					What:		/sys/bus/pci/drivers/i915/.../hwmon/hwmon<i>/curr1_crit
 | 
				
			||||||
Date:		February 2023
 | 
					Date:		February 2023
 | 
				
			||||||
KernelVersion:	6.2
 | 
					KernelVersion:	6.2
 | 
				
			||||||
Contact:	intel-gfx@lists.freedesktop.org
 | 
					Contact:	intel-gfx@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					@ -63,7 +63,7 @@ Description:	RW. Card reactive critical (I1) power limit in milliamperes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Only supported for particular Intel i915 graphics platforms.
 | 
							Only supported for particular Intel i915 graphics platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/energy1_input
 | 
					What:		/sys/bus/pci/drivers/i915/.../hwmon/hwmon<i>/energy1_input
 | 
				
			||||||
Date:		February 2023
 | 
					Date:		February 2023
 | 
				
			||||||
KernelVersion:	6.2
 | 
					KernelVersion:	6.2
 | 
				
			||||||
Contact:	intel-gfx@lists.freedesktop.org
 | 
					Contact:	intel-gfx@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,4 @@
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/power1_max
 | 
					What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/power1_max
 | 
				
			||||||
Date:		September 2023
 | 
					Date:		September 2023
 | 
				
			||||||
KernelVersion:	6.5
 | 
					KernelVersion:	6.5
 | 
				
			||||||
Contact:	intel-xe@lists.freedesktop.org
 | 
					Contact:	intel-xe@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,7 @@ Description:	RW. Card reactive sustained  (PL1) power limit in microwatts.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Only supported for particular Intel xe graphics platforms.
 | 
							Only supported for particular Intel xe graphics platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/power1_rated_max
 | 
					What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/power1_rated_max
 | 
				
			||||||
Date:		September 2023
 | 
					Date:		September 2023
 | 
				
			||||||
KernelVersion:	6.5
 | 
					KernelVersion:	6.5
 | 
				
			||||||
Contact:	intel-xe@lists.freedesktop.org
 | 
					Contact:	intel-xe@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					@ -20,7 +20,7 @@ Description:	RO. Card default power limit (default TDP setting).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Only supported for particular Intel xe graphics platforms.
 | 
							Only supported for particular Intel xe graphics platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/power1_crit
 | 
					What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/power1_crit
 | 
				
			||||||
Date:		September 2023
 | 
					Date:		September 2023
 | 
				
			||||||
KernelVersion:	6.5
 | 
					KernelVersion:	6.5
 | 
				
			||||||
Contact:	intel-xe@lists.freedesktop.org
 | 
					Contact:	intel-xe@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					@ -33,7 +33,7 @@ Description:	RW. Card reactive critical (I1) power limit in microwatts.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Only supported for particular Intel xe graphics platforms.
 | 
							Only supported for particular Intel xe graphics platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/curr1_crit
 | 
					What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/curr1_crit
 | 
				
			||||||
Date:		September 2023
 | 
					Date:		September 2023
 | 
				
			||||||
KernelVersion:	6.5
 | 
					KernelVersion:	6.5
 | 
				
			||||||
Contact:	intel-xe@lists.freedesktop.org
 | 
					Contact:	intel-xe@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					@ -44,7 +44,7 @@ Description:	RW. Card reactive critical (I1) power limit in milliamperes.
 | 
				
			||||||
		the operating frequency if the power averaged over a window
 | 
							the operating frequency if the power averaged over a window
 | 
				
			||||||
		exceeds this limit.
 | 
							exceeds this limit.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/in0_input
 | 
					What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/in0_input
 | 
				
			||||||
Date:		September 2023
 | 
					Date:		September 2023
 | 
				
			||||||
KernelVersion:	6.5
 | 
					KernelVersion:	6.5
 | 
				
			||||||
Contact:	intel-xe@lists.freedesktop.org
 | 
					Contact:	intel-xe@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					@ -52,7 +52,7 @@ Description:	RO. Current Voltage in millivolt.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Only supported for particular Intel xe graphics platforms.
 | 
							Only supported for particular Intel xe graphics platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/energy1_input
 | 
					What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/energy1_input
 | 
				
			||||||
Date:		September 2023
 | 
					Date:		September 2023
 | 
				
			||||||
KernelVersion:	6.5
 | 
					KernelVersion:	6.5
 | 
				
			||||||
Contact:	intel-xe@lists.freedesktop.org
 | 
					Contact:	intel-xe@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					@ -60,7 +60,7 @@ Description:	RO. Energy input of device in microjoules.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Only supported for particular Intel xe graphics platforms.
 | 
							Only supported for particular Intel xe graphics platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
What:		/sys/devices/.../hwmon/hwmon<i>/power1_max_interval
 | 
					What:		/sys/bus/pci/drivers/xe/.../hwmon/hwmon<i>/power1_max_interval
 | 
				
			||||||
Date:		October 2023
 | 
					Date:		October 2023
 | 
				
			||||||
KernelVersion:	6.6
 | 
					KernelVersion:	6.6
 | 
				
			||||||
Contact:	intel-xe@lists.freedesktop.org
 | 
					Contact:	intel-xe@lists.freedesktop.org
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,18 +4,18 @@ KernelVersion:	6.5
 | 
				
			||||||
Contact:	Miquel Raynal <miquel.raynal@bootlin.com>
 | 
					Contact:	Miquel Raynal <miquel.raynal@bootlin.com>
 | 
				
			||||||
Description:
 | 
					Description:
 | 
				
			||||||
		The "cells" folder contains one file per cell exposed by the
 | 
							The "cells" folder contains one file per cell exposed by the
 | 
				
			||||||
		NVMEM device. The name of the file is: <name>@<where>, with
 | 
							NVMEM device. The name of the file is: "<name>@<byte>,<bit>",
 | 
				
			||||||
		<name> being the cell name and <where> its location in the NVMEM
 | 
							with <name> being the cell name and <where> its location in
 | 
				
			||||||
		device, in hexadecimal (without the '0x' prefix, to mimic device
 | 
							the NVMEM device, in hexadecimal bytes and bits (without the
 | 
				
			||||||
		tree node names). The length of the file is the size of the cell
 | 
							'0x' prefix, to mimic device tree node names). The length of
 | 
				
			||||||
		(when known). The content of the file is the binary content of
 | 
							the file is the size of the cell (when known). The content of
 | 
				
			||||||
		the cell (may sometimes be ASCII, likely without trailing
 | 
							the file is the binary content of the cell (may sometimes be
 | 
				
			||||||
		character).
 | 
							ASCII, likely without trailing character).
 | 
				
			||||||
		Note: This file is only present if CONFIG_NVMEM_SYSFS
 | 
							Note: This file is only present if CONFIG_NVMEM_SYSFS
 | 
				
			||||||
		is enabled.
 | 
							is enabled.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Example::
 | 
							Example::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		  hexdump -C /sys/bus/nvmem/devices/1-00563/cells/product-name@d
 | 
							  hexdump -C /sys/bus/nvmem/devices/1-00563/cells/product-name@d,0
 | 
				
			||||||
		  00000000  54 4e 34 38 4d 2d 50 2d  44 4e         |TN48M-P-DN|
 | 
							  00000000  54 4e 34 38 4d 2d 50 2d  44 4e         |TN48M-P-DN|
 | 
				
			||||||
		  0000000a
 | 
							  0000000a
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -243,3 +243,10 @@ stable kernels.
 | 
				
			||||||
+----------------+-----------------+-----------------+-----------------------------+
 | 
					+----------------+-----------------+-----------------+-----------------------------+
 | 
				
			||||||
| ASR            | ASR8601         | #8601001        | N/A                         |
 | 
					| ASR            | ASR8601         | #8601001        | N/A                         |
 | 
				
			||||||
+----------------+-----------------+-----------------+-----------------------------+
 | 
					+----------------+-----------------+-----------------+-----------------------------+
 | 
				
			||||||
 | 
					+----------------+-----------------+-----------------+-----------------------------+
 | 
				
			||||||
 | 
					| Microsoft      | Azure Cobalt 100| #2139208        | ARM64_ERRATUM_2139208       |
 | 
				
			||||||
 | 
					+----------------+-----------------+-----------------+-----------------------------+
 | 
				
			||||||
 | 
					| Microsoft      | Azure Cobalt 100| #2067961        | ARM64_ERRATUM_2067961       |
 | 
				
			||||||
 | 
					+----------------+-----------------+-----------------+-----------------------------+
 | 
				
			||||||
 | 
					| Microsoft      | Azure Cobalt 100| #2253138        | ARM64_ERRATUM_2253138       |
 | 
				
			||||||
 | 
					+----------------+-----------------+-----------------+-----------------------------+
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -671,8 +671,23 @@ Testing Static Functions
 | 
				
			||||||
------------------------
 | 
					------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If we do not want to expose functions or variables for testing, one option is to
 | 
					If we do not want to expose functions or variables for testing, one option is to
 | 
				
			||||||
conditionally ``#include`` the test file at the end of your .c file. For
 | 
					conditionally export the used symbol. For example:
 | 
				
			||||||
example:
 | 
					
 | 
				
			||||||
 | 
					.. code-block:: c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* In my_file.c */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						VISIBLE_IF_KUNIT int do_interesting_thing();
 | 
				
			||||||
 | 
						EXPORT_SYMBOL_IF_KUNIT(do_interesting_thing);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* In my_file.h */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						#if IS_ENABLED(CONFIG_KUNIT)
 | 
				
			||||||
 | 
							int do_interesting_thing(void);
 | 
				
			||||||
 | 
						#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Alternatively, you could conditionally ``#include`` the test file at the end of
 | 
				
			||||||
 | 
					your .c file. For example:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. code-block:: c
 | 
					.. code-block:: c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,7 +28,10 @@ $(obj)/%.example.dts: $(src)/%.yaml check_dtschema_version FORCE
 | 
				
			||||||
find_all_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
 | 
					find_all_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \
 | 
				
			||||||
		-name 'processed-schema*' \)
 | 
							-name 'processed-schema*' \)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
find_cmd = $(find_all_cmd) | sed 's|^$(srctree)/$(src)/||' | grep -F -e "$(subst :," -e ",$(DT_SCHEMA_FILES))" | sed 's|^|$(srctree)/$(src)/|'
 | 
					find_cmd = $(find_all_cmd) | \
 | 
				
			||||||
 | 
							sed 's|^$(srctree)/||' | \
 | 
				
			||||||
 | 
							grep -F -e "$(subst :," -e ",$(DT_SCHEMA_FILES))" | \
 | 
				
			||||||
 | 
							sed 's|^|$(srctree)/|'
 | 
				
			||||||
CHK_DT_DOCS := $(shell $(find_cmd))
 | 
					CHK_DT_DOCS := $(shell $(find_cmd))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
quiet_cmd_yamllint = LINT    $(src)
 | 
					quiet_cmd_yamllint = LINT    $(src)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
				
			||||||
title: Ceva AHCI SATA Controller
 | 
					title: Ceva AHCI SATA Controller
 | 
				
			||||||
 | 
					
 | 
				
			||||||
maintainers:
 | 
					maintainers:
 | 
				
			||||||
  - Piyush Mehta <piyush.mehta@amd.com>
 | 
					  - Mubin Sayyed <mubin.sayyed@amd.com>
 | 
				
			||||||
 | 
					  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
description: |
 | 
					description: |
 | 
				
			||||||
  The Ceva SATA controller mostly conforms to the AHCI interface with some
 | 
					  The Ceva SATA controller mostly conforms to the AHCI interface with some
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,19 +29,22 @@ properties:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  audio-ports:
 | 
					  audio-ports:
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      Array of 8-bit values, 2 values per DAI (Documentation/sound/soc/dai.rst).
 | 
					      Array of 2 values per DAI (Documentation/sound/soc/dai.rst).
 | 
				
			||||||
      The implementation allows one or two DAIs.
 | 
					      The implementation allows one or two DAIs.
 | 
				
			||||||
      If two DAIs are defined, they must be of different type.
 | 
					      If two DAIs are defined, they must be of different type.
 | 
				
			||||||
    $ref: /schemas/types.yaml#/definitions/uint32-matrix
 | 
					    $ref: /schemas/types.yaml#/definitions/uint32-matrix
 | 
				
			||||||
 | 
					    minItems: 1
 | 
				
			||||||
 | 
					    maxItems: 2
 | 
				
			||||||
    items:
 | 
					    items:
 | 
				
			||||||
      minItems: 1
 | 
					 | 
				
			||||||
      items:
 | 
					      items:
 | 
				
			||||||
        - description: |
 | 
					        - description: |
 | 
				
			||||||
            The first value defines the DAI type: TDA998x_SPDIF or TDA998x_I2S
 | 
					            The first value defines the DAI type: TDA998x_SPDIF or TDA998x_I2S
 | 
				
			||||||
            (see include/dt-bindings/display/tda998x.h).
 | 
					            (see include/dt-bindings/display/tda998x.h).
 | 
				
			||||||
 | 
					          enum: [ 1, 2 ]
 | 
				
			||||||
        - description:
 | 
					        - description:
 | 
				
			||||||
            The second value defines the tda998x AP_ENA reg content when the
 | 
					            The second value defines the tda998x AP_ENA reg content when the
 | 
				
			||||||
            DAI in question is used.
 | 
					            DAI in question is used.
 | 
				
			||||||
 | 
					          maximum: 0xff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  '#sound-dai-cells':
 | 
					  '#sound-dai-cells':
 | 
				
			||||||
    enum: [ 0, 1 ]
 | 
					    enum: [ 0, 1 ]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,8 @@ description:
 | 
				
			||||||
  PS_MODE). Every pin can be configured as input/output.
 | 
					  PS_MODE). Every pin can be configured as input/output.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
maintainers:
 | 
					maintainers:
 | 
				
			||||||
  - Piyush Mehta <piyush.mehta@amd.com>
 | 
					  - Mubin Sayyed <mubin.sayyed@amd.com>
 | 
				
			||||||
 | 
					  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
properties:
 | 
					properties:
 | 
				
			||||||
  compatible:
 | 
					  compatible:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -78,8 +78,8 @@ examples:
 | 
				
			||||||
    pcie@0 {
 | 
					    pcie@0 {
 | 
				
			||||||
        #address-cells = <3>;
 | 
					        #address-cells = <3>;
 | 
				
			||||||
        #size-cells = <2>;
 | 
					        #size-cells = <2>;
 | 
				
			||||||
        ranges = <0x0 0x0 0x0 0x0 0x0 0x0>;
 | 
					        ranges = <0x02000000 0x0 0x100000 0x10000000 0x0 0x0>;
 | 
				
			||||||
        reg = <0x0 0x0 0x0 0x0 0x0 0x0>;
 | 
					        reg = <0x0 0x1000>;
 | 
				
			||||||
        device_type = "pci";
 | 
					        device_type = "pci";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        switch@0,0 {
 | 
					        switch@0,0 {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
				
			||||||
title: Zynq UltraScale+ MPSoC and Versal reset
 | 
					title: Zynq UltraScale+ MPSoC and Versal reset
 | 
				
			||||||
 | 
					
 | 
				
			||||||
maintainers:
 | 
					maintainers:
 | 
				
			||||||
  - Piyush Mehta <piyush.mehta@amd.com>
 | 
					  - Mubin Sayyed <mubin.sayyed@amd.com>
 | 
				
			||||||
 | 
					  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
description: |
 | 
					description: |
 | 
				
			||||||
  The Zynq UltraScale+ MPSoC and Versal has several different resets.
 | 
					  The Zynq UltraScale+ MPSoC and Versal has several different resets.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,84 @@
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 | 
				
			||||||
 | 
					%YAML 1.2
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					$id: http://devicetree.org/schemas/sound/atmel,asoc-wm8904.yaml#
 | 
				
			||||||
 | 
					$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					title: Atmel wm8904 audio codec complex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maintainers:
 | 
				
			||||||
 | 
					  - Dharma Balasubiramani <dharma.b@microchip.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					description:
 | 
				
			||||||
 | 
					  The ASoC audio complex configuration for Atmel with WM8904 audio codec.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					properties:
 | 
				
			||||||
 | 
					  compatible:
 | 
				
			||||||
 | 
					    const: atmel,asoc-wm8904
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  atmel,model:
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/string
 | 
				
			||||||
 | 
					    description: The user-visible name of this sound complex.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  atmel,ssc-controller:
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/phandle
 | 
				
			||||||
 | 
					    description: The phandle of the SSC controller.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  atmel,audio-codec:
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/phandle
 | 
				
			||||||
 | 
					    description: The phandle of the WM8731 audio codec.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  atmel,audio-routing:
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      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 source.
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
 | 
				
			||||||
 | 
					    items:
 | 
				
			||||||
 | 
					      enum:
 | 
				
			||||||
 | 
					        # Board Connectors
 | 
				
			||||||
 | 
					        - Headphone Jack
 | 
				
			||||||
 | 
					        - Line In Jack
 | 
				
			||||||
 | 
					        - Mic
 | 
				
			||||||
 | 
					        # WM8904 CODEC Pins
 | 
				
			||||||
 | 
					        - IN1L
 | 
				
			||||||
 | 
					        - IN1R
 | 
				
			||||||
 | 
					        - IN2L
 | 
				
			||||||
 | 
					        - IN2R
 | 
				
			||||||
 | 
					        - IN3L
 | 
				
			||||||
 | 
					        - IN3R
 | 
				
			||||||
 | 
					        - HPOUTL
 | 
				
			||||||
 | 
					        - HPOUTR
 | 
				
			||||||
 | 
					        - LINEOUTL
 | 
				
			||||||
 | 
					        - LINEOUTR
 | 
				
			||||||
 | 
					        - MICBIAS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					required:
 | 
				
			||||||
 | 
					  - compatible
 | 
				
			||||||
 | 
					  - atmel,model
 | 
				
			||||||
 | 
					  - atmel,audio-routing
 | 
				
			||||||
 | 
					  - atmel,ssc-controller
 | 
				
			||||||
 | 
					  - atmel,audio-codec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					additionalProperties: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					examples:
 | 
				
			||||||
 | 
					  - |
 | 
				
			||||||
 | 
					    sound {
 | 
				
			||||||
 | 
					        compatible = "atmel,asoc-wm8904";
 | 
				
			||||||
 | 
					        pinctrl-names = "default";
 | 
				
			||||||
 | 
					        pinctrl-0 = <&pinctrl_pck0_as_mck>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        atmel,model = "wm8904 @ AT91SAM9N12EK";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        atmel,audio-routing =
 | 
				
			||||||
 | 
					                "Headphone Jack", "HPOUTL",
 | 
				
			||||||
 | 
					                "Headphone Jack", "HPOUTR",
 | 
				
			||||||
 | 
					                "IN2L", "Line In Jack",
 | 
				
			||||||
 | 
					                "IN2R", "Line In Jack",
 | 
				
			||||||
 | 
					                "Mic", "MICBIAS",
 | 
				
			||||||
 | 
					                "IN1L", "Mic";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        atmel,ssc-controller = <&ssc0>;
 | 
				
			||||||
 | 
					        atmel,audio-codec = <&wm8904>;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,76 @@
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
 | 
				
			||||||
 | 
					%YAML 1.2
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					$id: http://devicetree.org/schemas/sound/atmel,sam9x5-wm8731-audio.yaml#
 | 
				
			||||||
 | 
					$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					title: Atmel at91sam9x5ek wm8731 audio complex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maintainers:
 | 
				
			||||||
 | 
					  - Dharma Balasubiramani <dharma.b@microchip.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					description:
 | 
				
			||||||
 | 
					  The audio complex configuration for Atmel at91sam9x5ek with WM8731 audio codec.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					properties:
 | 
				
			||||||
 | 
					  compatible:
 | 
				
			||||||
 | 
					    const: atmel,sam9x5-wm8731-audio
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  atmel,model:
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/string
 | 
				
			||||||
 | 
					    description: The user-visible name of this sound complex.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  atmel,ssc-controller:
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/phandle
 | 
				
			||||||
 | 
					    description: The phandle of the SSC controller.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  atmel,audio-codec:
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/phandle
 | 
				
			||||||
 | 
					    description: The phandle of the WM8731 audio codec.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  atmel,audio-routing:
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      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 source.
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/non-unique-string-array
 | 
				
			||||||
 | 
					    items:
 | 
				
			||||||
 | 
					      enum:
 | 
				
			||||||
 | 
					        # Board Connectors
 | 
				
			||||||
 | 
					        - Headphone Jack
 | 
				
			||||||
 | 
					        - Line In Jack
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # CODEC Pins
 | 
				
			||||||
 | 
					        - LOUT
 | 
				
			||||||
 | 
					        - ROUT
 | 
				
			||||||
 | 
					        - LHPOUT
 | 
				
			||||||
 | 
					        - RHPOUT
 | 
				
			||||||
 | 
					        - LLINEIN
 | 
				
			||||||
 | 
					        - RLINEIN
 | 
				
			||||||
 | 
					        - MICIN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					required:
 | 
				
			||||||
 | 
					  - compatible
 | 
				
			||||||
 | 
					  - atmel,model
 | 
				
			||||||
 | 
					  - atmel,ssc-controller
 | 
				
			||||||
 | 
					  - atmel,audio-codec
 | 
				
			||||||
 | 
					  - atmel,audio-routing
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					additionalProperties: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					examples:
 | 
				
			||||||
 | 
					  - |
 | 
				
			||||||
 | 
					    sound {
 | 
				
			||||||
 | 
					        compatible = "atmel,sam9x5-wm8731-audio";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        atmel,model = "wm8731 @ AT91SAM9X5EK";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        atmel,audio-routing =
 | 
				
			||||||
 | 
					                "Headphone Jack", "RHPOUT",
 | 
				
			||||||
 | 
					                "Headphone Jack", "LHPOUT",
 | 
				
			||||||
 | 
					                "LLINEIN", "Line In Jack",
 | 
				
			||||||
 | 
					                "RLINEIN", "Line In Jack";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        atmel,ssc-controller = <&ssc0>;
 | 
				
			||||||
 | 
					        atmel,audio-codec = <&wm8731>;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
| 
						 | 
					@ -18,7 +18,12 @@ description:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
properties:
 | 
					properties:
 | 
				
			||||||
  compatible:
 | 
					  compatible:
 | 
				
			||||||
    const: atmel,sama5d2-classd
 | 
					    oneOf:
 | 
				
			||||||
 | 
					      - items:
 | 
				
			||||||
 | 
					          - const: atmel,sama5d2-classd
 | 
				
			||||||
 | 
					      - items:
 | 
				
			||||||
 | 
					          - const: microchip,sam9x7-classd
 | 
				
			||||||
 | 
					          - const: atmel,sama5d2-classd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  reg:
 | 
					  reg:
 | 
				
			||||||
    maxItems: 1
 | 
					    maxItems: 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,35 +0,0 @@
 | 
				
			||||||
* Atmel at91sam9x5ek wm8731 audio complex
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Required properties:
 | 
					 | 
				
			||||||
  - compatible: "atmel,sam9x5-wm8731-audio"
 | 
					 | 
				
			||||||
  - atmel,model: The user-visible name of this sound complex.
 | 
					 | 
				
			||||||
  - atmel,ssc-controller: The phandle of the SSC controller
 | 
					 | 
				
			||||||
  - atmel,audio-codec: The phandle of the WM8731 audio codec
 | 
					 | 
				
			||||||
  - atmel,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 source.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Available audio endpoints for the audio-routing table:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Board connectors:
 | 
					 | 
				
			||||||
 * Headphone Jack
 | 
					 | 
				
			||||||
 * Line In Jack
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
wm8731 pins:
 | 
					 | 
				
			||||||
cf Documentation/devicetree/bindings/sound/wlf,wm8731.yaml
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Example:
 | 
					 | 
				
			||||||
sound {
 | 
					 | 
				
			||||||
	compatible = "atmel,sam9x5-wm8731-audio";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	atmel,model = "wm8731 @ AT91SAM9X5EK";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	atmel,audio-routing =
 | 
					 | 
				
			||||||
		"Headphone Jack", "RHPOUT",
 | 
					 | 
				
			||||||
		"Headphone Jack", "LHPOUT",
 | 
					 | 
				
			||||||
		"LLINEIN", "Line In Jack",
 | 
					 | 
				
			||||||
		"RLINEIN", "Line In Jack";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	atmel,ssc-controller = <&ssc0>;
 | 
					 | 
				
			||||||
	atmel,audio-codec = <&wm8731>;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,55 +0,0 @@
 | 
				
			||||||
Atmel ASoC driver with wm8904 audio codec complex
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Required properties:
 | 
					 | 
				
			||||||
  - compatible: "atmel,asoc-wm8904"
 | 
					 | 
				
			||||||
  - atmel,model: The user-visible name of this sound complex.
 | 
					 | 
				
			||||||
  - atmel,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 source. Valid names for sources and
 | 
					 | 
				
			||||||
    sinks are the WM8904's pins, and the jacks on the board:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    WM8904 pins:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    * IN1L
 | 
					 | 
				
			||||||
    * IN1R
 | 
					 | 
				
			||||||
    * IN2L
 | 
					 | 
				
			||||||
    * IN2R
 | 
					 | 
				
			||||||
    * IN3L
 | 
					 | 
				
			||||||
    * IN3R
 | 
					 | 
				
			||||||
    * HPOUTL
 | 
					 | 
				
			||||||
    * HPOUTR
 | 
					 | 
				
			||||||
    * LINEOUTL
 | 
					 | 
				
			||||||
    * LINEOUTR
 | 
					 | 
				
			||||||
    * MICBIAS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    Board connectors:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    * Headphone Jack
 | 
					 | 
				
			||||||
    * Line In Jack
 | 
					 | 
				
			||||||
    * Mic
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - atmel,ssc-controller: The phandle of the SSC controller
 | 
					 | 
				
			||||||
  - atmel,audio-codec: The phandle of the WM8904 audio codec
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Optional properties:
 | 
					 | 
				
			||||||
  - pinctrl-names, pinctrl-0: Please refer to pinctrl-bindings.txt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Example:
 | 
					 | 
				
			||||||
sound {
 | 
					 | 
				
			||||||
	compatible = "atmel,asoc-wm8904";
 | 
					 | 
				
			||||||
	pinctrl-names = "default";
 | 
					 | 
				
			||||||
	pinctrl-0 = <&pinctrl_pck0_as_mck>;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	atmel,model = "wm8904 @ AT91SAM9N12EK";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	atmel,audio-routing =
 | 
					 | 
				
			||||||
		"Headphone Jack", "HPOUTL",
 | 
					 | 
				
			||||||
		"Headphone Jack", "HPOUTR",
 | 
					 | 
				
			||||||
		"IN2L", "Line In Jack",
 | 
					 | 
				
			||||||
		"IN2R", "Line In Jack",
 | 
					 | 
				
			||||||
		"Mic", "MICBIAS",
 | 
					 | 
				
			||||||
		"IN1L", "Mic";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	atmel,ssc-controller = <&ssc0>;
 | 
					 | 
				
			||||||
	atmel,audio-codec = <&wm8904>;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
| 
						 | 
					@ -51,7 +51,7 @@ definitions:
 | 
				
			||||||
          - $ref: /schemas/types.yaml#/definitions/phandle
 | 
					          - $ref: /schemas/types.yaml#/definitions/phandle
 | 
				
			||||||
      clocks:
 | 
					      clocks:
 | 
				
			||||||
        description: Indicates system clock
 | 
					        description: Indicates system clock
 | 
				
			||||||
        $ref: /schemas/types.yaml#/definitions/phandle
 | 
					        maxItems: 1
 | 
				
			||||||
      system-clock-frequency:
 | 
					      system-clock-frequency:
 | 
				
			||||||
        $ref: simple-card.yaml#/definitions/system-clock-frequency
 | 
					        $ref: simple-card.yaml#/definitions/system-clock-frequency
 | 
				
			||||||
      system-clock-direction-out:
 | 
					      system-clock-direction-out:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,6 +25,9 @@ properties:
 | 
				
			||||||
  reg:
 | 
					  reg:
 | 
				
			||||||
    maxItems: 1
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  interrupts:
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  '#sound-dai-cells':
 | 
					  '#sound-dai-cells':
 | 
				
			||||||
    const: 1
 | 
					    const: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,6 +38,7 @@ properties:
 | 
				
			||||||
    default: 0x0f
 | 
					    default: 0x0f
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  everest,mic1-src:
 | 
					  everest,mic1-src:
 | 
				
			||||||
 | 
					    deprecated: true
 | 
				
			||||||
    $ref: /schemas/types.yaml#/definitions/uint8
 | 
					    $ref: /schemas/types.yaml#/definitions/uint8
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      the value of reg 2A when headset plugged.
 | 
					      the value of reg 2A when headset plugged.
 | 
				
			||||||
| 
						 | 
					@ -46,6 +47,7 @@ properties:
 | 
				
			||||||
    default: 0x22
 | 
					    default: 0x22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  everest,mic2-src:
 | 
					  everest,mic2-src:
 | 
				
			||||||
 | 
					    deprecated: true
 | 
				
			||||||
    $ref: /schemas/types.yaml#/definitions/uint8
 | 
					    $ref: /schemas/types.yaml#/definitions/uint8
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      the value of reg 2A when headset unplugged.
 | 
					      the value of reg 2A when headset unplugged.
 | 
				
			||||||
| 
						 | 
					@ -87,7 +89,7 @@ properties:
 | 
				
			||||||
       0 means the chip detect jack type again after button released.
 | 
					       0 means the chip detect jack type again after button released.
 | 
				
			||||||
    minimum: 0
 | 
					    minimum: 0
 | 
				
			||||||
    maximum: 0x7f
 | 
					    maximum: 0x7f
 | 
				
			||||||
    default: 0x45
 | 
					    default: 0x00
 | 
				
			||||||
 | 
					
 | 
				
			||||||
required:
 | 
					required:
 | 
				
			||||||
  - compatible
 | 
					  - compatible
 | 
				
			||||||
| 
						 | 
					@ -107,10 +109,8 @@ examples:
 | 
				
			||||||
        clocks = <&clks 10>;
 | 
					        clocks = <&clks 10>;
 | 
				
			||||||
        clock-names = "mclk";
 | 
					        clock-names = "mclk";
 | 
				
			||||||
        #sound-dai-cells = <0>;
 | 
					        #sound-dai-cells = <0>;
 | 
				
			||||||
        everest,mic1-src = [22];
 | 
					 | 
				
			||||||
        everest,mic2-src = [44];
 | 
					 | 
				
			||||||
        everest,jack-pol = [0e];
 | 
					        everest,jack-pol = [0e];
 | 
				
			||||||
        everest,interrupt-src = [08];
 | 
					        everest,interrupt-src = [08];
 | 
				
			||||||
        everest,interrupt-clk = [45];
 | 
					        everest,interrupt-clk = [00];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,80 +0,0 @@
 | 
				
			||||||
Freescale Asynchronous Sample Rate Converter (ASRC) Controller
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The Asynchronous Sample Rate Converter (ASRC) converts the sampling rate of a
 | 
					 | 
				
			||||||
signal associated with an input clock into a signal associated with a different
 | 
					 | 
				
			||||||
output clock. The driver currently works as a Front End of DPCM with other Back
 | 
					 | 
				
			||||||
Ends Audio controller such as ESAI, SSI and SAI. It has three pairs to support
 | 
					 | 
				
			||||||
three substreams within totally 10 channels.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Required properties:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - compatible		: Compatible list, should contain one of the following
 | 
					 | 
				
			||||||
			  compatibles:
 | 
					 | 
				
			||||||
			  "fsl,imx35-asrc",
 | 
					 | 
				
			||||||
			  "fsl,imx53-asrc",
 | 
					 | 
				
			||||||
			  "fsl,imx8qm-asrc",
 | 
					 | 
				
			||||||
			  "fsl,imx8qxp-asrc",
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - reg			: Offset and length of the register set for the device.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - interrupts		: Contains the spdif interrupt.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - dmas		: Generic dma devicetree binding as described in
 | 
					 | 
				
			||||||
			  Documentation/devicetree/bindings/dma/dma.txt.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - dma-names		: Contains "rxa", "rxb", "rxc", "txa", "txb" and "txc".
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - clocks		: Contains an entry for each entry in clock-names.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  - clock-names		: Contains the following entries
 | 
					 | 
				
			||||||
	"mem"		  Peripheral access clock to access registers.
 | 
					 | 
				
			||||||
	"ipg"		  Peripheral clock to driver module.
 | 
					 | 
				
			||||||
	"asrck_<0-f>"	  Clock sources for input and output clock.
 | 
					 | 
				
			||||||
	"spba"		  The spba clock is required when ASRC is placed as a
 | 
					 | 
				
			||||||
			  bus slave of the Shared Peripheral Bus and when two
 | 
					 | 
				
			||||||
			  or more bus masters (CPU, DMA or DSP) try to access
 | 
					 | 
				
			||||||
			  it. This property is optional depending on the SoC
 | 
					 | 
				
			||||||
			  design.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   - fsl,asrc-rate	: Defines a mutual sample rate used by DPCM Back Ends.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   - fsl,asrc-width	: Defines a mutual sample width used by DPCM Back Ends.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   - fsl,asrc-clk-map   : Defines clock map used in driver. which is required
 | 
					 | 
				
			||||||
			  by imx8qm/imx8qxp platform
 | 
					 | 
				
			||||||
			  <0> - select the map for asrc0 in imx8qm/imx8qxp
 | 
					 | 
				
			||||||
			  <1> - select the map for asrc1 in imx8qm/imx8qxp
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Optional properties:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   - big-endian		: If this property is absent, the little endian mode
 | 
					 | 
				
			||||||
			  will be in use as default. Otherwise, the big endian
 | 
					 | 
				
			||||||
			  mode will be in use for all the device registers.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   - fsl,asrc-format	: Defines a mutual sample format used by DPCM Back
 | 
					 | 
				
			||||||
			  Ends, which can replace the fsl,asrc-width.
 | 
					 | 
				
			||||||
			  The value is 2 (S16_LE), or 6 (S24_LE).
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Example:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
asrc: asrc@2034000 {
 | 
					 | 
				
			||||||
	compatible = "fsl,imx53-asrc";
 | 
					 | 
				
			||||||
	reg = <0x02034000 0x4000>;
 | 
					 | 
				
			||||||
	interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
 | 
					 | 
				
			||||||
	clocks = <&clks 107>, <&clks 107>, <&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 107>, <&clks 0>, <&clks 0>;
 | 
					 | 
				
			||||||
	clock-names = "mem", "ipg", "asrck0",
 | 
					 | 
				
			||||||
		"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";
 | 
					 | 
				
			||||||
	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>;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
| 
						 | 
					@ -51,8 +51,8 @@ properties:
 | 
				
			||||||
      - const: ctx3_tx
 | 
					      - const: ctx3_tx
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  firmware-name:
 | 
					  firmware-name:
 | 
				
			||||||
    $ref: /schemas/types.yaml#/definitions/string
 | 
					    items:
 | 
				
			||||||
    const: imx/easrc/easrc-imx8mn.bin
 | 
					      - const: imx/easrc/easrc-imx8mn.bin
 | 
				
			||||||
    description: The coefficient table for the filters
 | 
					    description: The coefficient table for the filters
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fsl,asrc-rate:
 | 
					  fsl,asrc-rate:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										162
									
								
								Documentation/devicetree/bindings/sound/fsl,imx-asrc.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										162
									
								
								Documentation/devicetree/bindings/sound/fsl,imx-asrc.yaml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,162 @@
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | 
				
			||||||
 | 
					%YAML 1.2
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					$id: http://devicetree.org/schemas/sound/fsl,imx-asrc.yaml#
 | 
				
			||||||
 | 
					$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					title: Freescale Asynchronous Sample Rate Converter (ASRC) Controller
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					description:
 | 
				
			||||||
 | 
					  The Asynchronous Sample Rate Converter (ASRC) converts the sampling rate of
 | 
				
			||||||
 | 
					  a signal associated with an input clock into a signal associated with a
 | 
				
			||||||
 | 
					  different output clock. The driver currently works as a Front End of DPCM
 | 
				
			||||||
 | 
					  with other Back Ends Audio controller such as ESAI, SSI and SAI. It has
 | 
				
			||||||
 | 
					  three pairs to support three substreams within totally 10 channels.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maintainers:
 | 
				
			||||||
 | 
					  - Shawn Guo <shawnguo@kernel.org>
 | 
				
			||||||
 | 
					  - Sascha Hauer <s.hauer@pengutronix.de>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					properties:
 | 
				
			||||||
 | 
					  compatible:
 | 
				
			||||||
 | 
					    oneOf:
 | 
				
			||||||
 | 
					      - enum:
 | 
				
			||||||
 | 
					          - fsl,imx35-asrc
 | 
				
			||||||
 | 
					          - fsl,imx53-asrc
 | 
				
			||||||
 | 
					          - fsl,imx8qm-asrc
 | 
				
			||||||
 | 
					          - fsl,imx8qxp-asrc
 | 
				
			||||||
 | 
					      - items:
 | 
				
			||||||
 | 
					          - enum:
 | 
				
			||||||
 | 
					              - fsl,imx6sx-asrc
 | 
				
			||||||
 | 
					              - fsl,imx6ul-asrc
 | 
				
			||||||
 | 
					          - const: fsl,imx53-asrc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  reg:
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  interrupts:
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dmas:
 | 
				
			||||||
 | 
					    maxItems: 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  dma-names:
 | 
				
			||||||
 | 
					    items:
 | 
				
			||||||
 | 
					      - const: rxa
 | 
				
			||||||
 | 
					      - const: rxb
 | 
				
			||||||
 | 
					      - const: rxc
 | 
				
			||||||
 | 
					      - const: txa
 | 
				
			||||||
 | 
					      - const: txb
 | 
				
			||||||
 | 
					      - const: txc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  clocks:
 | 
				
			||||||
 | 
					    maxItems: 19
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  clock-names:
 | 
				
			||||||
 | 
					    items:
 | 
				
			||||||
 | 
					      - const: mem
 | 
				
			||||||
 | 
					      - const: ipg
 | 
				
			||||||
 | 
					      - const: asrck_0
 | 
				
			||||||
 | 
					      - const: asrck_1
 | 
				
			||||||
 | 
					      - const: asrck_2
 | 
				
			||||||
 | 
					      - const: asrck_3
 | 
				
			||||||
 | 
					      - const: asrck_4
 | 
				
			||||||
 | 
					      - const: asrck_5
 | 
				
			||||||
 | 
					      - const: asrck_6
 | 
				
			||||||
 | 
					      - const: asrck_7
 | 
				
			||||||
 | 
					      - const: asrck_8
 | 
				
			||||||
 | 
					      - const: asrck_9
 | 
				
			||||||
 | 
					      - const: asrck_a
 | 
				
			||||||
 | 
					      - const: asrck_b
 | 
				
			||||||
 | 
					      - const: asrck_c
 | 
				
			||||||
 | 
					      - const: asrck_d
 | 
				
			||||||
 | 
					      - const: asrck_e
 | 
				
			||||||
 | 
					      - const: asrck_f
 | 
				
			||||||
 | 
					      - const: spba
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fsl,asrc-rate:
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/uint32
 | 
				
			||||||
 | 
					    description: The mutual sample rate used by DPCM Back Ends
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fsl,asrc-width:
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/uint32
 | 
				
			||||||
 | 
					    description: The mutual sample width used by DPCM Back Ends
 | 
				
			||||||
 | 
					    enum: [16, 24]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fsl,asrc-clk-map:
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/uint32
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      Defines clock map used in driver
 | 
				
			||||||
 | 
					      <0> - select the map for asrc0 in imx8qm/imx8qxp
 | 
				
			||||||
 | 
					      <1> - select the map for asrc1 in imx8qm/imx8qxp
 | 
				
			||||||
 | 
					    enum: [0, 1]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  big-endian:
 | 
				
			||||||
 | 
					    type: boolean
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      If this property is absent, the little endian mode will be in use as
 | 
				
			||||||
 | 
					      default. Otherwise, the big endian mode will be in use for all the
 | 
				
			||||||
 | 
					      device registers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  fsl,asrc-format:
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/uint32
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      Defines a mutual sample format used by DPCM Back Ends, which can
 | 
				
			||||||
 | 
					      replace the fsl,asrc-width. The value is 2 (S16_LE), or 6 (S24_LE).
 | 
				
			||||||
 | 
					    enum: [2, 6]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					required:
 | 
				
			||||||
 | 
					  - compatible
 | 
				
			||||||
 | 
					  - reg
 | 
				
			||||||
 | 
					  - interrupts
 | 
				
			||||||
 | 
					  - dmas
 | 
				
			||||||
 | 
					  - dma-names
 | 
				
			||||||
 | 
					  - clocks
 | 
				
			||||||
 | 
					  - clock-names
 | 
				
			||||||
 | 
					  - fsl,asrc-rate
 | 
				
			||||||
 | 
					  - fsl,asrc-width
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					allOf:
 | 
				
			||||||
 | 
					  - if:
 | 
				
			||||||
 | 
					      properties:
 | 
				
			||||||
 | 
					        compatible:
 | 
				
			||||||
 | 
					          contains:
 | 
				
			||||||
 | 
					            enum:
 | 
				
			||||||
 | 
					              - fsl,imx8qm-asrc
 | 
				
			||||||
 | 
					              - fsl,imx8qxp-asrc
 | 
				
			||||||
 | 
					    then:
 | 
				
			||||||
 | 
					      required:
 | 
				
			||||||
 | 
					        - fsl,asrc-clk-map
 | 
				
			||||||
 | 
					    else:
 | 
				
			||||||
 | 
					      properties:
 | 
				
			||||||
 | 
					        fsl,asrc-clk-map: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					additionalProperties: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					examples:
 | 
				
			||||||
 | 
					  - |
 | 
				
			||||||
 | 
					    #include <dt-bindings/interrupt-controller/irq.h>
 | 
				
			||||||
 | 
					    #include <dt-bindings/clock/imx6qdl-clock.h>
 | 
				
			||||||
 | 
					    asrc: asrc@2034000 {
 | 
				
			||||||
 | 
					        compatible = "fsl,imx53-asrc";
 | 
				
			||||||
 | 
					        reg = <0x02034000 0x4000>;
 | 
				
			||||||
 | 
					        interrupts = <0 50 IRQ_TYPE_LEVEL_HIGH>;
 | 
				
			||||||
 | 
					        clocks = <&clks IMX6QDL_CLK_ASRC_IPG>,
 | 
				
			||||||
 | 
					                 <&clks IMX6QDL_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 IMX6QDL_CLK_ASRC>, <&clks 0>, <&clks 0>,
 | 
				
			||||||
 | 
					                 <&clks IMX6QDL_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>;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
| 
						 | 
					@ -15,10 +15,16 @@ description: |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
properties:
 | 
					properties:
 | 
				
			||||||
  compatible:
 | 
					  compatible:
 | 
				
			||||||
    enum:
 | 
					    oneOf:
 | 
				
			||||||
      - fsl,imx8mm-micfil
 | 
					      - items:
 | 
				
			||||||
      - fsl,imx8mp-micfil
 | 
					          - enum:
 | 
				
			||||||
      - fsl,imx93-micfil
 | 
					              - fsl,imx95-micfil
 | 
				
			||||||
 | 
					          - const: fsl,imx93-micfil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      - enum:
 | 
				
			||||||
 | 
					          - fsl,imx8mm-micfil
 | 
				
			||||||
 | 
					          - fsl,imx8mp-micfil
 | 
				
			||||||
 | 
					          - fsl,imx93-micfil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  reg:
 | 
					  reg:
 | 
				
			||||||
    maxItems: 1
 | 
					    maxItems: 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,6 +39,7 @@ properties:
 | 
				
			||||||
              - fsl,imx8qm-sai
 | 
					              - fsl,imx8qm-sai
 | 
				
			||||||
              - fsl,imx8ulp-sai
 | 
					              - fsl,imx8ulp-sai
 | 
				
			||||||
              - fsl,imx93-sai
 | 
					              - fsl,imx93-sai
 | 
				
			||||||
 | 
					              - fsl,imx95-sai
 | 
				
			||||||
              - fsl,vf610-sai
 | 
					              - fsl,vf610-sai
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  reg:
 | 
					  reg:
 | 
				
			||||||
| 
						 | 
					@ -75,12 +76,17 @@ properties:
 | 
				
			||||||
          - const: pll11k
 | 
					          - const: pll11k
 | 
				
			||||||
        minItems: 4
 | 
					        minItems: 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  power-domains:
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  dmas:
 | 
					  dmas:
 | 
				
			||||||
 | 
					    minItems: 1
 | 
				
			||||||
    items:
 | 
					    items:
 | 
				
			||||||
      - description: DMA controller phandle and request line for RX
 | 
					      - description: DMA controller phandle and request line for RX
 | 
				
			||||||
      - description: DMA controller phandle and request line for TX
 | 
					      - description: DMA controller phandle and request line for TX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  dma-names:
 | 
					  dma-names:
 | 
				
			||||||
 | 
					    minItems: 1
 | 
				
			||||||
    items:
 | 
					    items:
 | 
				
			||||||
      - const: rx
 | 
					      - const: rx
 | 
				
			||||||
      - const: tx
 | 
					      - const: tx
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,7 +51,7 @@ properties:
 | 
				
			||||||
    maxItems: 1
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  firmware-name:
 | 
					  firmware-name:
 | 
				
			||||||
    $ref: /schemas/types.yaml#/definitions/string
 | 
					    maxItems: 1
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      Filters coefficients file to load. If this property is omitted, internal
 | 
					      Filters coefficients file to load. If this property is omitted, internal
 | 
				
			||||||
      filters are disabled.
 | 
					      filters are disabled.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,9 +24,14 @@ properties:
 | 
				
			||||||
    const: 0
 | 
					    const: 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  compatible:
 | 
					  compatible:
 | 
				
			||||||
    enum:
 | 
					    oneOf:
 | 
				
			||||||
      - microchip,sam9x60-i2smcc
 | 
					      - enum:
 | 
				
			||||||
      - microchip,sama7g5-i2smcc
 | 
					          - microchip,sam9x60-i2smcc
 | 
				
			||||||
 | 
					          - microchip,sama7g5-i2smcc
 | 
				
			||||||
 | 
					      - items:
 | 
				
			||||||
 | 
					          - enum:
 | 
				
			||||||
 | 
					              - microchip,sam9x7-i2smcc
 | 
				
			||||||
 | 
					          - const: microchip,sam9x60-i2smcc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  reg:
 | 
					  reg:
 | 
				
			||||||
    maxItems: 1
 | 
					    maxItems: 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -107,7 +107,7 @@ patternProperties:
 | 
				
			||||||
        properties:
 | 
					        properties:
 | 
				
			||||||
          sound-dai:
 | 
					          sound-dai:
 | 
				
			||||||
            minItems: 1
 | 
					            minItems: 1
 | 
				
			||||||
            maxItems: 4
 | 
					            maxItems: 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    required:
 | 
					    required:
 | 
				
			||||||
      - link-name
 | 
					      - link-name
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,6 +15,7 @@ description: |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
allOf:
 | 
					allOf:
 | 
				
			||||||
  - $ref: dai-common.yaml#
 | 
					  - $ref: dai-common.yaml#
 | 
				
			||||||
 | 
					  - $ref: qcom,wcd93xx-common.yaml#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
properties:
 | 
					properties:
 | 
				
			||||||
  compatible:
 | 
					  compatible:
 | 
				
			||||||
| 
						 | 
					@ -22,92 +23,12 @@ properties:
 | 
				
			||||||
      - qcom,wcd9380-codec
 | 
					      - qcom,wcd9380-codec
 | 
				
			||||||
      - qcom,wcd9385-codec
 | 
					      - qcom,wcd9385-codec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  reset-gpios:
 | 
					 | 
				
			||||||
    description: GPIO spec for reset line to use
 | 
					 | 
				
			||||||
    maxItems: 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  us-euro-gpios:
 | 
					  us-euro-gpios:
 | 
				
			||||||
    description: GPIO spec for swapping gnd and mic segments
 | 
					    description: GPIO spec for swapping gnd and mic segments
 | 
				
			||||||
    maxItems: 1
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  vdd-buck-supply:
 | 
					 | 
				
			||||||
    description: A reference to the 1.8V buck supply
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  vdd-rxtx-supply:
 | 
					 | 
				
			||||||
    description: A reference to the 1.8V rx supply
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  vdd-io-supply:
 | 
					 | 
				
			||||||
    description: A reference to the 1.8V I/O supply
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  vdd-mic-bias-supply:
 | 
					 | 
				
			||||||
    description: A reference to the 3.8V mic bias supply
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  qcom,tx-device:
 | 
					 | 
				
			||||||
    $ref: /schemas/types.yaml#/definitions/phandle-array
 | 
					 | 
				
			||||||
    description: A reference to Soundwire tx device phandle
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  qcom,rx-device:
 | 
					 | 
				
			||||||
    $ref: /schemas/types.yaml#/definitions/phandle-array
 | 
					 | 
				
			||||||
    description: A reference to Soundwire rx device phandle
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  qcom,micbias1-microvolt:
 | 
					 | 
				
			||||||
    description: micbias1 voltage
 | 
					 | 
				
			||||||
    minimum: 1800000
 | 
					 | 
				
			||||||
    maximum: 2850000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  qcom,micbias2-microvolt:
 | 
					 | 
				
			||||||
    description: micbias2 voltage
 | 
					 | 
				
			||||||
    minimum: 1800000
 | 
					 | 
				
			||||||
    maximum: 2850000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  qcom,micbias3-microvolt:
 | 
					 | 
				
			||||||
    description: micbias3 voltage
 | 
					 | 
				
			||||||
    minimum: 1800000
 | 
					 | 
				
			||||||
    maximum: 2850000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  qcom,micbias4-microvolt:
 | 
					 | 
				
			||||||
    description: micbias4 voltage
 | 
					 | 
				
			||||||
    minimum: 1800000
 | 
					 | 
				
			||||||
    maximum: 2850000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  qcom,hphl-jack-type-normally-closed:
 | 
					 | 
				
			||||||
    description: Indicates that HPHL jack switch type is normally closed
 | 
					 | 
				
			||||||
    type: boolean
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  qcom,ground-jack-type-normally-closed:
 | 
					 | 
				
			||||||
    description: Indicates that Headset Ground switch type is normally closed
 | 
					 | 
				
			||||||
    type: boolean
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  qcom,mbhc-headset-vthreshold-microvolt:
 | 
					 | 
				
			||||||
    description: Voltage threshold value for headset detection
 | 
					 | 
				
			||||||
    minimum: 0
 | 
					 | 
				
			||||||
    maximum: 2850000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  qcom,mbhc-headphone-vthreshold-microvolt:
 | 
					 | 
				
			||||||
    description: Voltage threshold value for headphone detection
 | 
					 | 
				
			||||||
    minimum: 0
 | 
					 | 
				
			||||||
    maximum: 2850000
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  qcom,mbhc-buttons-vthreshold-microvolt:
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      Array of 8 Voltage threshold values corresponding to headset
 | 
					 | 
				
			||||||
      button0 - button7
 | 
					 | 
				
			||||||
    minItems: 8
 | 
					 | 
				
			||||||
    maxItems: 8
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  '#sound-dai-cells':
 | 
					 | 
				
			||||||
    const: 1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
required:
 | 
					required:
 | 
				
			||||||
  - compatible
 | 
					  - compatible
 | 
				
			||||||
  - reset-gpios
 | 
					 | 
				
			||||||
  - qcom,tx-device
 | 
					 | 
				
			||||||
  - qcom,rx-device
 | 
					 | 
				
			||||||
  - qcom,micbias1-microvolt
 | 
					 | 
				
			||||||
  - qcom,micbias2-microvolt
 | 
					 | 
				
			||||||
  - qcom,micbias3-microvolt
 | 
					 | 
				
			||||||
  - qcom,micbias4-microvolt
 | 
					 | 
				
			||||||
  - "#sound-dai-cells"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
unevaluatedProperties: false
 | 
					unevaluatedProperties: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,69 @@
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | 
				
			||||||
 | 
					%YAML 1.2
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					$id: http://devicetree.org/schemas/sound/qcom,wcd939x-sdw.yaml#
 | 
				
			||||||
 | 
					$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					title: Qualcomm SoundWire devices on WCD9390/WCD9395
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maintainers:
 | 
				
			||||||
 | 
					  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					description: |
 | 
				
			||||||
 | 
					  Qualcomm WCD9390/WCD9395 Codec is a standalone Hi-Fi audio codec IC.
 | 
				
			||||||
 | 
					  It has RX and TX Soundwire devices. This bindings is for the devices.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					properties:
 | 
				
			||||||
 | 
					  compatible:
 | 
				
			||||||
 | 
					    const: sdw20217010e00
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  reg:
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,tx-port-mapping:
 | 
				
			||||||
 | 
					    description: |
 | 
				
			||||||
 | 
					      Specifies static port mapping between device and host tx ports.
 | 
				
			||||||
 | 
					      In the order of the device port index.
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/uint32-array
 | 
				
			||||||
 | 
					    minItems: 4
 | 
				
			||||||
 | 
					    maxItems: 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,rx-port-mapping:
 | 
				
			||||||
 | 
					    description: |
 | 
				
			||||||
 | 
					      Specifies static port mapping between device and host rx ports.
 | 
				
			||||||
 | 
					      In the order of device port index.
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/uint32-array
 | 
				
			||||||
 | 
					    minItems: 6
 | 
				
			||||||
 | 
					    maxItems: 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					required:
 | 
				
			||||||
 | 
					  - compatible
 | 
				
			||||||
 | 
					  - reg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					additionalProperties: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					examples:
 | 
				
			||||||
 | 
					  - |
 | 
				
			||||||
 | 
					    soundwire@3210000 {
 | 
				
			||||||
 | 
					        #address-cells = <2>;
 | 
				
			||||||
 | 
					        #size-cells = <0>;
 | 
				
			||||||
 | 
					        reg = <0x03210000 0x2000>;
 | 
				
			||||||
 | 
					        wcd938x_rx: codec@0,4 {
 | 
				
			||||||
 | 
					            compatible = "sdw20217010e00";
 | 
				
			||||||
 | 
					            reg = <0 4>;
 | 
				
			||||||
 | 
					            qcom,rx-port-mapping = <1 2 3 4 5 6>;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    soundwire@3230000 {
 | 
				
			||||||
 | 
					        #address-cells = <2>;
 | 
				
			||||||
 | 
					        #size-cells = <0>;
 | 
				
			||||||
 | 
					        reg = <0x03230000 0x2000>;
 | 
				
			||||||
 | 
					        wcd938x_tx: codec@0,3 {
 | 
				
			||||||
 | 
					            compatible = "sdw20217010e00";
 | 
				
			||||||
 | 
					            reg = <0 3>;
 | 
				
			||||||
 | 
					            qcom,tx-port-mapping = <2 3 4 5>;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					...
 | 
				
			||||||
							
								
								
									
										96
									
								
								Documentation/devicetree/bindings/sound/qcom,wcd939x.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								Documentation/devicetree/bindings/sound/qcom,wcd939x.yaml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,96 @@
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | 
				
			||||||
 | 
					%YAML 1.2
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					$id: http://devicetree.org/schemas/sound/qcom,wcd939x.yaml#
 | 
				
			||||||
 | 
					$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					title: Qualcomm WCD9380/WCD9385 Audio Codec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maintainers:
 | 
				
			||||||
 | 
					  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					description: |
 | 
				
			||||||
 | 
					  Qualcomm WCD9390/WCD9395 Codec is a standalone Hi-Fi audio codec IC.
 | 
				
			||||||
 | 
					  It has RX and TX Soundwire devices.
 | 
				
			||||||
 | 
					  The WCD9390/WCD9395 IC has a functionally separate USB-C Mux subsystem
 | 
				
			||||||
 | 
					  accessible over an I2C interface.
 | 
				
			||||||
 | 
					  The Audio Headphone and Microphone data path between the Codec and the USB-C Mux
 | 
				
			||||||
 | 
					  subsystems are external to the IC, thus requiring DT port-endpoint graph description
 | 
				
			||||||
 | 
					  to handle USB-C altmode & orientation switching for Audio Accessory Mode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					allOf:
 | 
				
			||||||
 | 
					  - $ref: dai-common.yaml#
 | 
				
			||||||
 | 
					  - $ref: qcom,wcd93xx-common.yaml#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					properties:
 | 
				
			||||||
 | 
					  compatible:
 | 
				
			||||||
 | 
					    oneOf:
 | 
				
			||||||
 | 
					      - const: qcom,wcd9390-codec
 | 
				
			||||||
 | 
					      - items:
 | 
				
			||||||
 | 
					          - const: qcom,wcd9395-codec
 | 
				
			||||||
 | 
					          - const: qcom,wcd9390-codec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  mode-switch:
 | 
				
			||||||
 | 
					    description: Flag the port as possible handler of altmode switching
 | 
				
			||||||
 | 
					    type: boolean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  orientation-switch:
 | 
				
			||||||
 | 
					    description: Flag the port as possible handler of orientation switching
 | 
				
			||||||
 | 
					    type: boolean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  port:
 | 
				
			||||||
 | 
					    $ref: /schemas/graph.yaml#/properties/port
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      A port node to link the WCD939x Codec node to USB MUX subsystems for the
 | 
				
			||||||
 | 
					      purpose of handling altmode muxing and orientation switching to detect and
 | 
				
			||||||
 | 
					      enable Audio Accessory Mode.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					required:
 | 
				
			||||||
 | 
					  - compatible
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unevaluatedProperties: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					examples:
 | 
				
			||||||
 | 
					  - |
 | 
				
			||||||
 | 
					    #include <dt-bindings/interrupt-controller/irq.h>
 | 
				
			||||||
 | 
					    codec {
 | 
				
			||||||
 | 
					        compatible = "qcom,wcd9390-codec";
 | 
				
			||||||
 | 
					        reset-gpios = <&tlmm 32 IRQ_TYPE_NONE>;
 | 
				
			||||||
 | 
					        #sound-dai-cells = <1>;
 | 
				
			||||||
 | 
					        qcom,tx-device = <&wcd939x_tx>;
 | 
				
			||||||
 | 
					        qcom,rx-device = <&wcd939x_rx>;
 | 
				
			||||||
 | 
					        qcom,micbias1-microvolt = <1800000>;
 | 
				
			||||||
 | 
					        qcom,micbias2-microvolt = <1800000>;
 | 
				
			||||||
 | 
					        qcom,micbias3-microvolt = <1800000>;
 | 
				
			||||||
 | 
					        qcom,micbias4-microvolt = <1800000>;
 | 
				
			||||||
 | 
					        qcom,hphl-jack-type-normally-closed;
 | 
				
			||||||
 | 
					        qcom,ground-jack-type-normally-closed;
 | 
				
			||||||
 | 
					        qcom,mbhc-buttons-vthreshold-microvolt = <75000 150000 237000 500000 500000 500000 500000 500000>;
 | 
				
			||||||
 | 
					        qcom,mbhc-headphone-vthreshold-microvolt = <50000>;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    /* ... */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    soundwire@3210000 {
 | 
				
			||||||
 | 
					        #address-cells = <2>;
 | 
				
			||||||
 | 
					        #size-cells = <0>;
 | 
				
			||||||
 | 
					        reg = <0x03210000 0x2000>;
 | 
				
			||||||
 | 
					        wcd939x_rx: codec@0,4 {
 | 
				
			||||||
 | 
					            compatible = "sdw20217010e00";
 | 
				
			||||||
 | 
					            reg = <0 4>;
 | 
				
			||||||
 | 
					            qcom,rx-port-mapping = <1 2 3 4 5 6>;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    soundwire@3230000 {
 | 
				
			||||||
 | 
					        #address-cells = <2>;
 | 
				
			||||||
 | 
					        #size-cells = <0>;
 | 
				
			||||||
 | 
					        reg = <0x03230000 0x2000>;
 | 
				
			||||||
 | 
					        wcd938x_tx: codec@0,3 {
 | 
				
			||||||
 | 
					            compatible = "sdw20217010e00";
 | 
				
			||||||
 | 
					            reg = <0 3>;
 | 
				
			||||||
 | 
					            qcom,tx-port-mapping = <2 3 4 5>;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					...
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,95 @@
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | 
				
			||||||
 | 
					%YAML 1.2
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					$id: http://devicetree.org/schemas/sound/qcom,wcd93xx-common.yaml#
 | 
				
			||||||
 | 
					$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					title: Common properties for Qualcomm WCD93xx Audio Codec
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maintainers:
 | 
				
			||||||
 | 
					  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					properties:
 | 
				
			||||||
 | 
					  reset-gpios:
 | 
				
			||||||
 | 
					    description: GPIO spec for reset line to use
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  vdd-buck-supply:
 | 
				
			||||||
 | 
					    description: A reference to the 1.8V buck supply
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  vdd-rxtx-supply:
 | 
				
			||||||
 | 
					    description: A reference to the 1.8V rx supply
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  vdd-io-supply:
 | 
				
			||||||
 | 
					    description: A reference to the 1.8V I/O supply
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  vdd-mic-bias-supply:
 | 
				
			||||||
 | 
					    description: A reference to the 3.8V mic bias supply
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,tx-device:
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/phandle-array
 | 
				
			||||||
 | 
					    description: A reference to Soundwire tx device phandle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,rx-device:
 | 
				
			||||||
 | 
					    $ref: /schemas/types.yaml#/definitions/phandle-array
 | 
				
			||||||
 | 
					    description: A reference to Soundwire rx device phandle
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,micbias1-microvolt:
 | 
				
			||||||
 | 
					    description: micbias1 voltage
 | 
				
			||||||
 | 
					    minimum: 1800000
 | 
				
			||||||
 | 
					    maximum: 2850000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,micbias2-microvolt:
 | 
				
			||||||
 | 
					    description: micbias2 voltage
 | 
				
			||||||
 | 
					    minimum: 1800000
 | 
				
			||||||
 | 
					    maximum: 2850000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,micbias3-microvolt:
 | 
				
			||||||
 | 
					    description: micbias3 voltage
 | 
				
			||||||
 | 
					    minimum: 1800000
 | 
				
			||||||
 | 
					    maximum: 2850000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,micbias4-microvolt:
 | 
				
			||||||
 | 
					    description: micbias4 voltage
 | 
				
			||||||
 | 
					    minimum: 1800000
 | 
				
			||||||
 | 
					    maximum: 2850000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,hphl-jack-type-normally-closed:
 | 
				
			||||||
 | 
					    description: Indicates that HPHL jack switch type is normally closed
 | 
				
			||||||
 | 
					    type: boolean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,ground-jack-type-normally-closed:
 | 
				
			||||||
 | 
					    description: Indicates that Headset Ground switch type is normally closed
 | 
				
			||||||
 | 
					    type: boolean
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,mbhc-headset-vthreshold-microvolt:
 | 
				
			||||||
 | 
					    description: Voltage threshold value for headset detection
 | 
				
			||||||
 | 
					    minimum: 0
 | 
				
			||||||
 | 
					    maximum: 2850000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,mbhc-headphone-vthreshold-microvolt:
 | 
				
			||||||
 | 
					    description: Voltage threshold value for headphone detection
 | 
				
			||||||
 | 
					    minimum: 0
 | 
				
			||||||
 | 
					    maximum: 2850000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  qcom,mbhc-buttons-vthreshold-microvolt:
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      Array of 8 Voltage threshold values corresponding to headset
 | 
				
			||||||
 | 
					      button0 - button7
 | 
				
			||||||
 | 
					    minItems: 8
 | 
				
			||||||
 | 
					    maxItems: 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  '#sound-dai-cells':
 | 
				
			||||||
 | 
					    const: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					required:
 | 
				
			||||||
 | 
					  - reset-gpios
 | 
				
			||||||
 | 
					  - qcom,tx-device
 | 
				
			||||||
 | 
					  - qcom,rx-device
 | 
				
			||||||
 | 
					  - qcom,micbias1-microvolt
 | 
				
			||||||
 | 
					  - qcom,micbias2-microvolt
 | 
				
			||||||
 | 
					  - qcom,micbias3-microvolt
 | 
				
			||||||
 | 
					  - qcom,micbias4-microvolt
 | 
				
			||||||
 | 
					  - "#sound-dai-cells"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					additionalProperties: true
 | 
				
			||||||
| 
						 | 
					@ -28,6 +28,10 @@ properties:
 | 
				
			||||||
    description: Powerdown/Shutdown line to use (pin SD_N)
 | 
					    description: Powerdown/Shutdown line to use (pin SD_N)
 | 
				
			||||||
    maxItems: 1
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  reset-gpios:
 | 
				
			||||||
 | 
					    description: Powerdown/Shutdown line to use (pin SD_N)
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  '#sound-dai-cells':
 | 
					  '#sound-dai-cells':
 | 
				
			||||||
    const: 0
 | 
					    const: 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,11 +41,16 @@ properties:
 | 
				
			||||||
required:
 | 
					required:
 | 
				
			||||||
  - compatible
 | 
					  - compatible
 | 
				
			||||||
  - reg
 | 
					  - reg
 | 
				
			||||||
  - powerdown-gpios
 | 
					 | 
				
			||||||
  - '#sound-dai-cells'
 | 
					  - '#sound-dai-cells'
 | 
				
			||||||
  - vdd-1p8-supply
 | 
					  - vdd-1p8-supply
 | 
				
			||||||
  - vdd-io-supply
 | 
					  - vdd-io-supply
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					oneOf:
 | 
				
			||||||
 | 
					  - required:
 | 
				
			||||||
 | 
					      - powerdown-gpios
 | 
				
			||||||
 | 
					  - required:
 | 
				
			||||||
 | 
					      - reset-gpios
 | 
				
			||||||
 | 
					
 | 
				
			||||||
unevaluatedProperties: false
 | 
					unevaluatedProperties: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
examples:
 | 
					examples:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										41
									
								
								Documentation/devicetree/bindings/sound/realtek,rt1015.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								Documentation/devicetree/bindings/sound/realtek,rt1015.yaml
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,41 @@
 | 
				
			||||||
 | 
					# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
 | 
				
			||||||
 | 
					%YAML 1.2
 | 
				
			||||||
 | 
					---
 | 
				
			||||||
 | 
					$id: http://devicetree.org/schemas/sound/realtek,rt1015.yaml#
 | 
				
			||||||
 | 
					$schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					title: RT1015 Mono Class D Audio Amplifier
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maintainers:
 | 
				
			||||||
 | 
					  - Jack Yu <jack.yu@realtek.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					properties:
 | 
				
			||||||
 | 
					  compatible:
 | 
				
			||||||
 | 
					    enum:
 | 
				
			||||||
 | 
					      - realtek,rt1015
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  reg:
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  realtek,power-up-delay-ms:
 | 
				
			||||||
 | 
					    description: Set a delay time for flush work to be completed,
 | 
				
			||||||
 | 
					      this vlaue is adjustable depending on platform.
 | 
				
			||||||
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					required:
 | 
				
			||||||
 | 
					  - compatible
 | 
				
			||||||
 | 
					  - reg
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					additionalProperties: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					examples:
 | 
				
			||||||
 | 
					  - |
 | 
				
			||||||
 | 
					    i2c {
 | 
				
			||||||
 | 
					        #address-cells = <1>;
 | 
				
			||||||
 | 
					        #size-cells = <0>;
 | 
				
			||||||
 | 
					        codec@28 {
 | 
				
			||||||
 | 
					            compatible = "realtek,rt1015";
 | 
				
			||||||
 | 
					            reg = <0x28>;
 | 
				
			||||||
 | 
					            realtek,power-up-delay-ms = <50>;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
| 
						 | 
					@ -1,23 +0,0 @@
 | 
				
			||||||
RT1015 Mono Class D Audio Amplifier
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This device supports I2C only.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Required properties:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- compatible : "realtek,rt1015".
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- reg : The I2C address of the device.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Optional properties:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- realtek,power-up-delay-ms
 | 
					 | 
				
			||||||
  Set a delay time for flush work to be completed,
 | 
					 | 
				
			||||||
  this value is adjustable depending on platform.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Example:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
rt1015: codec@28 {
 | 
					 | 
				
			||||||
	compatible = "realtek,rt1015";
 | 
					 | 
				
			||||||
	reg = <0x28>;
 | 
					 | 
				
			||||||
	realtek,power-up-delay-ms = <50>;
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
| 
						 | 
					@ -25,8 +25,11 @@ properties:
 | 
				
			||||||
    description: Phandles to the codecs.
 | 
					    description: Phandles to the codecs.
 | 
				
			||||||
    $ref: /schemas/types.yaml#/definitions/phandle-array
 | 
					    $ref: /schemas/types.yaml#/definitions/phandle-array
 | 
				
			||||||
    items:
 | 
					    items:
 | 
				
			||||||
      - description: Phandle to the WM5110 audio codec.
 | 
					      - items:
 | 
				
			||||||
      - description: Phandle to the HDMI transmitter node.
 | 
					          - description: Phandle to the WM5110 audio codec.
 | 
				
			||||||
 | 
					      - items:
 | 
				
			||||||
 | 
					          - description: Phandle to the HDMI transmitter node.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  samsung,audio-routing:
 | 
					  samsung,audio-routing:
 | 
				
			||||||
    description: |
 | 
					    description: |
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,7 +42,7 @@ properties:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  resets:
 | 
					  resets:
 | 
				
			||||||
    description: Reset controller to reset the TPM
 | 
					    description: Reset controller to reset the TPM
 | 
				
			||||||
    $ref: /schemas/types.yaml#/definitions/phandle
 | 
					    maxItems: 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  reset-gpios:
 | 
					  reset-gpios:
 | 
				
			||||||
    description: Output GPIO pin to reset the TPM
 | 
					    description: Output GPIO pin to reset the TPM
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -55,9 +55,12 @@ properties:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  samsung,sysreg:
 | 
					  samsung,sysreg:
 | 
				
			||||||
    $ref: /schemas/types.yaml#/definitions/phandle-array
 | 
					    $ref: /schemas/types.yaml#/definitions/phandle-array
 | 
				
			||||||
    description: Should be phandle/offset pair. The phandle to the syscon node
 | 
					    items:
 | 
				
			||||||
                 which indicates the FSYSx sysreg interface and the offset of
 | 
					      - items:
 | 
				
			||||||
                 the control register for UFS io coherency setting.
 | 
					          - description: phandle to FSYSx sysreg node
 | 
				
			||||||
 | 
					          - description: offset of the control register for UFS io coherency setting
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      Phandle and offset to the FSYSx sysreg for UFS io coherency setting.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  dma-coherent: true
 | 
					  dma-coherent: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
				
			||||||
title: Xilinx SuperSpeed DWC3 USB SoC controller
 | 
					title: Xilinx SuperSpeed DWC3 USB SoC controller
 | 
				
			||||||
 | 
					
 | 
				
			||||||
maintainers:
 | 
					maintainers:
 | 
				
			||||||
  - Piyush Mehta <piyush.mehta@amd.com>
 | 
					  - Mubin Sayyed <mubin.sayyed@amd.com>
 | 
				
			||||||
 | 
					  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
properties:
 | 
					properties:
 | 
				
			||||||
  compatible:
 | 
					  compatible:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,8 +16,9 @@ description:
 | 
				
			||||||
  USB 2.0 traffic.
 | 
					  USB 2.0 traffic.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
maintainers:
 | 
					maintainers:
 | 
				
			||||||
  - Piyush Mehta <piyush.mehta@amd.com>
 | 
					 | 
				
			||||||
  - Michal Simek <michal.simek@amd.com>
 | 
					  - Michal Simek <michal.simek@amd.com>
 | 
				
			||||||
 | 
					  - Mubin Sayyed <mubin.sayyed@amd.com>
 | 
				
			||||||
 | 
					  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
properties:
 | 
					properties:
 | 
				
			||||||
  compatible:
 | 
					  compatible:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,7 +7,8 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
 | 
				
			||||||
title: Xilinx udc controller
 | 
					title: Xilinx udc controller
 | 
				
			||||||
 | 
					
 | 
				
			||||||
maintainers:
 | 
					maintainers:
 | 
				
			||||||
  - Piyush Mehta <piyush.mehta@amd.com>
 | 
					  - Mubin Sayyed <mubin.sayyed@amd.com>
 | 
				
			||||||
 | 
					  - Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
properties:
 | 
					properties:
 | 
				
			||||||
  compatible:
 | 
					  compatible:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,13 +16,13 @@
 | 
				
			||||||
# that are possible for CORE. So for example if CORE_BELL_A_ADVANCED is 'y',
 | 
					# that are possible for CORE. So for example if CORE_BELL_A_ADVANCED is 'y',
 | 
				
			||||||
# CORE must be 'y' too.
 | 
					# CORE must be 'y' too.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#  * What influences CORE_BELL_A_ADVANCED ?
 | 
					#  * What influences CORE_BELL_A_ADVANCED?
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# As the name implies CORE_BELL_A_ADVANCED is an advanced feature of
 | 
					# As the name implies CORE_BELL_A_ADVANCED is an advanced feature of
 | 
				
			||||||
# CORE_BELL_A so naturally it depends on CORE_BELL_A. So if CORE_BELL_A is 'y'
 | 
					# CORE_BELL_A so naturally it depends on CORE_BELL_A. So if CORE_BELL_A is 'y'
 | 
				
			||||||
# we know CORE_BELL_A_ADVANCED can be 'y' too.
 | 
					# we know CORE_BELL_A_ADVANCED can be 'y' too.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
#   * What influences CORE_BELL_A ?
 | 
					#   * What influences CORE_BELL_A?
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# CORE_BELL_A depends on CORE, so CORE influences CORE_BELL_A.
 | 
					# CORE_BELL_A depends on CORE, so CORE influences CORE_BELL_A.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					@ -34,7 +34,7 @@
 | 
				
			||||||
# the "recursive dependency detected" error.
 | 
					# the "recursive dependency detected" error.
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Reading the Documentation/kbuild/Kconfig.recursion-issue-01 file it may be
 | 
					# Reading the Documentation/kbuild/Kconfig.recursion-issue-01 file it may be
 | 
				
			||||||
# obvious that an easy to solution to this problem should just be the removal
 | 
					# obvious that an easy solution to this problem should just be the removal
 | 
				
			||||||
# of the "select CORE" from CORE_BELL_A_ADVANCED as that is implicit already
 | 
					# of the "select CORE" from CORE_BELL_A_ADVANCED as that is implicit already
 | 
				
			||||||
# since CORE_BELL_A depends on CORE. Recursive dependency issues are not always
 | 
					# since CORE_BELL_A depends on CORE. Recursive dependency issues are not always
 | 
				
			||||||
# so trivial to resolve, we provide another example below of practical
 | 
					# so trivial to resolve, we provide another example below of practical
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -384,8 +384,6 @@ operations:
 | 
				
			||||||
            - type
 | 
					            - type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      dump:
 | 
					      dump:
 | 
				
			||||||
        pre: dpll-lock-dumpit
 | 
					 | 
				
			||||||
        post: dpll-unlock-dumpit
 | 
					 | 
				
			||||||
        reply: *dev-attrs
 | 
					        reply: *dev-attrs
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    -
 | 
					    -
 | 
				
			||||||
| 
						 | 
					@ -473,8 +471,6 @@ operations:
 | 
				
			||||||
            - fractional-frequency-offset
 | 
					            - fractional-frequency-offset
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      dump:
 | 
					      dump:
 | 
				
			||||||
        pre: dpll-lock-dumpit
 | 
					 | 
				
			||||||
        post: dpll-unlock-dumpit
 | 
					 | 
				
			||||||
        request:
 | 
					        request:
 | 
				
			||||||
          attributes:
 | 
					          attributes:
 | 
				
			||||||
            - id
 | 
					            - id
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -942,6 +942,10 @@ attribute-sets:
 | 
				
			||||||
      -
 | 
					      -
 | 
				
			||||||
        name: gro-ipv4-max-size
 | 
					        name: gro-ipv4-max-size
 | 
				
			||||||
        type: u32
 | 
					        type: u32
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: dpll-pin
 | 
				
			||||||
 | 
					        type: nest
 | 
				
			||||||
 | 
					        nested-attributes: link-dpll-pin-attrs
 | 
				
			||||||
  -
 | 
					  -
 | 
				
			||||||
    name: af-spec-attrs
 | 
					    name: af-spec-attrs
 | 
				
			||||||
    attributes:
 | 
					    attributes:
 | 
				
			||||||
| 
						 | 
					@ -1627,6 +1631,12 @@ attribute-sets:
 | 
				
			||||||
      -
 | 
					      -
 | 
				
			||||||
        name: used
 | 
					        name: used
 | 
				
			||||||
        type: u8
 | 
					        type: u8
 | 
				
			||||||
 | 
					  -
 | 
				
			||||||
 | 
					    name: link-dpll-pin-attrs
 | 
				
			||||||
 | 
					    attributes:
 | 
				
			||||||
 | 
					      -
 | 
				
			||||||
 | 
					        name: id
 | 
				
			||||||
 | 
					        type: u32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
sub-messages:
 | 
					sub-messages:
 | 
				
			||||||
  -
 | 
					  -
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -126,7 +126,7 @@ Users may also set the RoCE capability of the function using
 | 
				
			||||||
`devlink port function set roce` command.
 | 
					`devlink port function set roce` command.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Users may also set the function as migratable using
 | 
					Users may also set the function as migratable using
 | 
				
			||||||
'devlink port function set migratable' command.
 | 
					`devlink port function set migratable` command.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Users may also set the IPsec crypto capability of the function using
 | 
					Users may also set the IPsec crypto capability of the function using
 | 
				
			||||||
`devlink port function set ipsec_crypto` command.
 | 
					`devlink port function set ipsec_crypto` command.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -136,8 +136,8 @@ struct_netpoll_info*                npinfo                  -
 | 
				
			||||||
possible_net_t                      nd_net                  -                   read_mostly         (dev_net)napi_busy_loop,tcp_v(4/6)_rcv,ip(v6)_rcv,ip(6)_input,ip(6)_input_finish
 | 
					possible_net_t                      nd_net                  -                   read_mostly         (dev_net)napi_busy_loop,tcp_v(4/6)_rcv,ip(v6)_rcv,ip(6)_input,ip(6)_input_finish
 | 
				
			||||||
void*                               ml_priv                                                         
 | 
					void*                               ml_priv                                                         
 | 
				
			||||||
enum_netdev_ml_priv_type            ml_priv_type                                                    
 | 
					enum_netdev_ml_priv_type            ml_priv_type                                                    
 | 
				
			||||||
struct_pcpu_lstats__percpu*         lstats                                                          
 | 
					struct_pcpu_lstats__percpu*         lstats                  read_mostly                             dev_lstats_add()
 | 
				
			||||||
struct_pcpu_sw_netstats__percpu*    tstats                                                          
 | 
					struct_pcpu_sw_netstats__percpu*    tstats                  read_mostly                             dev_sw_netstats_tx_add()
 | 
				
			||||||
struct_pcpu_dstats__percpu*         dstats                                                          
 | 
					struct_pcpu_dstats__percpu*         dstats                                                          
 | 
				
			||||||
struct_garp_port*                   garp_port                                                       
 | 
					struct_garp_port*                   garp_port                                                       
 | 
				
			||||||
struct_mrp_port*                    mrp_port                                                        
 | 
					struct_mrp_port*                    mrp_port                                                        
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,13 +38,13 @@ u32                           max_window              read_mostly         -
 | 
				
			||||||
u32                           mss_cache               read_mostly         read_mostly         tcp_rate_check_app_limited,tcp_current_mss,tcp_sync_mss,tcp_sndbuf_expand,tcp_tso_should_defer(tx);tcp_update_pacing_rate,tcp_clean_rtx_queue(rx)
 | 
					u32                           mss_cache               read_mostly         read_mostly         tcp_rate_check_app_limited,tcp_current_mss,tcp_sync_mss,tcp_sndbuf_expand,tcp_tso_should_defer(tx);tcp_update_pacing_rate,tcp_clean_rtx_queue(rx)
 | 
				
			||||||
u32                           window_clamp            read_mostly         read_write          tcp_rcv_space_adjust,__tcp_select_window
 | 
					u32                           window_clamp            read_mostly         read_write          tcp_rcv_space_adjust,__tcp_select_window
 | 
				
			||||||
u32                           rcv_ssthresh            read_mostly         -                   __tcp_select_window
 | 
					u32                           rcv_ssthresh            read_mostly         -                   __tcp_select_window
 | 
				
			||||||
u82                           scaling_ratio                                                   
 | 
					u8                            scaling_ratio           read_mostly         read_mostly         tcp_win_from_space
 | 
				
			||||||
struct                        tcp_rack                                                        
 | 
					struct                        tcp_rack                                                        
 | 
				
			||||||
u16                           advmss                  -                   read_mostly         tcp_rcv_space_adjust
 | 
					u16                           advmss                  -                   read_mostly         tcp_rcv_space_adjust
 | 
				
			||||||
u8                            compressed_ack                                                  
 | 
					u8                            compressed_ack                                                  
 | 
				
			||||||
u8:2                          dup_ack_counter                                                 
 | 
					u8:2                          dup_ack_counter                                                 
 | 
				
			||||||
u8:1                          tlp_retrans                                                     
 | 
					u8:1                          tlp_retrans                                                     
 | 
				
			||||||
u8:1                          tcp_usec_ts                                                     
 | 
					u8:1                          tcp_usec_ts             read_mostly         read_mostly
 | 
				
			||||||
u32                           chrono_start            read_write          -                   tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data)
 | 
					u32                           chrono_start            read_write          -                   tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data)
 | 
				
			||||||
u32[3]                        chrono_stat             read_write          -                   tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data)
 | 
					u32[3]                        chrono_stat             read_write          -                   tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data)
 | 
				
			||||||
u8:2                          chrono_type             read_write          -                   tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data)
 | 
					u8:2                          chrono_type             read_write          -                   tcp_chrono_start/stop(tcp_write_xmit,tcp_cwnd_validate,tcp_send_syn_data)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										121
									
								
								Documentation/process/cve.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										121
									
								
								Documentation/process/cve.rst
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,121 @@
 | 
				
			||||||
 | 
					====
 | 
				
			||||||
 | 
					CVEs
 | 
				
			||||||
 | 
					====
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Common Vulnerabilities and Exposure (CVE®) numbers were developed as an
 | 
				
			||||||
 | 
					unambiguous way to identify, define, and catalog publicly disclosed
 | 
				
			||||||
 | 
					security vulnerabilities.  Over time, their usefulness has declined with
 | 
				
			||||||
 | 
					regards to the kernel project, and CVE numbers were very often assigned
 | 
				
			||||||
 | 
					in inappropriate ways and for inappropriate reasons.  Because of this,
 | 
				
			||||||
 | 
					the kernel development community has tended to avoid them.  However, the
 | 
				
			||||||
 | 
					combination of continuing pressure to assign CVEs and other forms of
 | 
				
			||||||
 | 
					security identifiers, and ongoing abuses by individuals and companies
 | 
				
			||||||
 | 
					outside of the kernel community has made it clear that the kernel
 | 
				
			||||||
 | 
					community should have control over those assignments.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The Linux kernel developer team does have the ability to assign CVEs for
 | 
				
			||||||
 | 
					potential Linux kernel security issues.  This assignment is independent
 | 
				
			||||||
 | 
					of the :doc:`normal Linux kernel security bug reporting
 | 
				
			||||||
 | 
					process<../process/security-bugs>`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A list of all assigned CVEs for the Linux kernel can be found in the
 | 
				
			||||||
 | 
					archives of the linux-cve mailing list, as seen on
 | 
				
			||||||
 | 
					https://lore.kernel.org/linux-cve-announce/.  To get notice of the
 | 
				
			||||||
 | 
					assigned CVEs, please `subscribe
 | 
				
			||||||
 | 
					<https://subspace.kernel.org/subscribing.html>`_ to that mailing list.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Process
 | 
				
			||||||
 | 
					=======
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					As part of the normal stable release process, kernel changes that are
 | 
				
			||||||
 | 
					potentially security issues are identified by the developers responsible
 | 
				
			||||||
 | 
					for CVE number assignments and have CVE numbers automatically assigned
 | 
				
			||||||
 | 
					to them.  These assignments are published on the linux-cve-announce
 | 
				
			||||||
 | 
					mailing list as announcements on a frequent basis.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note, due to the layer at which the Linux kernel is in a system, almost
 | 
				
			||||||
 | 
					any bug might be exploitable to compromise the security of the kernel,
 | 
				
			||||||
 | 
					but the possibility of exploitation is often not evident when the bug is
 | 
				
			||||||
 | 
					fixed.  Because of this, the CVE assignment team is overly cautious and
 | 
				
			||||||
 | 
					assign CVE numbers to any bugfix that they identify.  This
 | 
				
			||||||
 | 
					explains the seemingly large number of CVEs that are issued by the Linux
 | 
				
			||||||
 | 
					kernel team.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If the CVE assignment team misses a specific fix that any user feels
 | 
				
			||||||
 | 
					should have a CVE assigned to it, please email them at <cve@kernel.org>
 | 
				
			||||||
 | 
					and the team there will work with you on it.  Note that no potential
 | 
				
			||||||
 | 
					security issues should be sent to this alias, it is ONLY for assignment
 | 
				
			||||||
 | 
					of CVEs for fixes that are already in released kernel trees.  If you
 | 
				
			||||||
 | 
					feel you have found an unfixed security issue, please follow the
 | 
				
			||||||
 | 
					:doc:`normal Linux kernel security bug reporting
 | 
				
			||||||
 | 
					process<../process/security-bugs>`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					No CVEs will be automatically assigned for unfixed security issues in
 | 
				
			||||||
 | 
					the Linux kernel; assignment will only automatically happen after a fix
 | 
				
			||||||
 | 
					is available and applied to a stable kernel tree, and it will be tracked
 | 
				
			||||||
 | 
					that way by the git commit id of the original fix.  If anyone wishes to
 | 
				
			||||||
 | 
					have a CVE assigned before an issue is resolved with a commit, please
 | 
				
			||||||
 | 
					contact the kernel CVE assignment team at <cve@kernel.org> to get an
 | 
				
			||||||
 | 
					identifier assigned from their batch of reserved identifiers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					No CVEs will be assigned for any issue found in a version of the kernel
 | 
				
			||||||
 | 
					that is not currently being actively supported by the Stable/LTS kernel
 | 
				
			||||||
 | 
					team.  A list of the currently supported kernel branches can be found at
 | 
				
			||||||
 | 
					https://kernel.org/releases.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Disputes of assigned CVEs
 | 
				
			||||||
 | 
					=========================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The authority to dispute or modify an assigned CVE for a specific kernel
 | 
				
			||||||
 | 
					change lies solely with the maintainers of the relevant subsystem
 | 
				
			||||||
 | 
					affected.  This principle ensures a high degree of accuracy and
 | 
				
			||||||
 | 
					accountability in vulnerability reporting.  Only those individuals with
 | 
				
			||||||
 | 
					deep expertise and intimate knowledge of the subsystem can effectively
 | 
				
			||||||
 | 
					assess the validity and scope of a reported vulnerability and determine
 | 
				
			||||||
 | 
					its appropriate CVE designation.  Any attempt to modify or dispute a CVE
 | 
				
			||||||
 | 
					outside of this designated authority could lead to confusion, inaccurate
 | 
				
			||||||
 | 
					reporting, and ultimately, compromised systems.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Invalid CVEs
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If a security issue is found in a Linux kernel that is only supported by
 | 
				
			||||||
 | 
					a Linux distribution due to the changes that have been made by that
 | 
				
			||||||
 | 
					distribution, or due to the distribution supporting a kernel version
 | 
				
			||||||
 | 
					that is no longer one of the kernel.org supported releases, then a CVE
 | 
				
			||||||
 | 
					can not be assigned by the Linux kernel CVE team, and must be asked for
 | 
				
			||||||
 | 
					from that Linux distribution itself.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Any CVE that is assigned against the Linux kernel for an actively
 | 
				
			||||||
 | 
					supported kernel version, by any group other than the kernel assignment
 | 
				
			||||||
 | 
					CVE team should not be treated as a valid CVE.  Please notify the
 | 
				
			||||||
 | 
					kernel CVE assignment team at <cve@kernel.org> so that they can work to
 | 
				
			||||||
 | 
					invalidate such entries through the CNA remediation process.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Applicability of specific CVEs
 | 
				
			||||||
 | 
					==============================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					As the Linux kernel can be used in many different ways, with many
 | 
				
			||||||
 | 
					different ways of accessing it by external users, or no access at all,
 | 
				
			||||||
 | 
					the applicability of any specific CVE is up to the user of Linux to
 | 
				
			||||||
 | 
					determine, it is not up to the CVE assignment team.  Please do not
 | 
				
			||||||
 | 
					contact us to attempt to determine the applicability of any specific
 | 
				
			||||||
 | 
					CVE.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Also, as the source tree is so large, and any one system only uses a
 | 
				
			||||||
 | 
					small subset of the source tree, any users of Linux should be aware that
 | 
				
			||||||
 | 
					large numbers of assigned CVEs are not relevant for their systems.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In short, we do not know your use case, and we do not know what portions
 | 
				
			||||||
 | 
					of the kernel that you use, so there is no way for us to determine if a
 | 
				
			||||||
 | 
					specific CVE is relevant for your system.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					As always, it is best to take all released kernel changes, as they are
 | 
				
			||||||
 | 
					tested together in a unified whole by many community members, and not as
 | 
				
			||||||
 | 
					individual cherry-picked changes.  Also note that for many bugs, the
 | 
				
			||||||
 | 
					solution to the overall problem is not found in a single change, but by
 | 
				
			||||||
 | 
					the sum of many fixes on top of each other.  Ideally CVEs will be
 | 
				
			||||||
 | 
					assigned to all fixes for all issues, but sometimes we will fail to
 | 
				
			||||||
 | 
					notice fixes, therefore assume that some changes without a CVE assigned
 | 
				
			||||||
 | 
					might be relevant to take.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -81,6 +81,7 @@ of special classes of bugs: regressions and security problems.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   handling-regressions
 | 
					   handling-regressions
 | 
				
			||||||
   security-bugs
 | 
					   security-bugs
 | 
				
			||||||
 | 
					   cve
 | 
				
			||||||
   embargoed-hardware-issues
 | 
					   embargoed-hardware-issues
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Maintainer information
 | 
					Maintainer information
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,9 +99,8 @@ CVE assignment
 | 
				
			||||||
The security team does not assign CVEs, nor do we require them for
 | 
					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
 | 
					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
 | 
					delay the bug handling.  If a reporter wishes to have a CVE identifier
 | 
				
			||||||
assigned, they should find one by themselves, for example by contacting
 | 
					assigned for a confirmed issue, they can contact the :doc:`kernel CVE
 | 
				
			||||||
MITRE directly.  However under no circumstances will a patch inclusion
 | 
					assignment team<../process/cve>` to obtain one.
 | 
				
			||||||
be delayed to wait for a CVE identifier to arrive.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Non-disclosure agreements
 | 
					Non-disclosure agreements
 | 
				
			||||||
-------------------------
 | 
					-------------------------
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -109,7 +109,7 @@ class KernelFeat(Directive):
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                out_lines += line + "\n"
 | 
					                out_lines += line + "\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        nodeList = self.nestedParse(out_lines, fname)
 | 
					        nodeList = self.nestedParse(out_lines, self.arguments[0])
 | 
				
			||||||
        return nodeList
 | 
					        return nodeList
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def nestedParse(self, lines, fname):
 | 
					    def nestedParse(self, lines, fname):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -448,17 +448,17 @@ Function-specific configfs interface
 | 
				
			||||||
The function name to use when creating the function directory is "ncm".
 | 
					The function name to use when creating the function directory is "ncm".
 | 
				
			||||||
The NCM function provides these attributes in its function directory:
 | 
					The NCM function provides these attributes in its function directory:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	===============   ==================================================
 | 
						======================= ==================================================
 | 
				
			||||||
	ifname		  network device interface name associated with this
 | 
						ifname			network device interface name associated with this
 | 
				
			||||||
			  function instance
 | 
									function instance
 | 
				
			||||||
	qmult		  queue length multiplier for high and super speed
 | 
						qmult			queue length multiplier for high and super speed
 | 
				
			||||||
	host_addr	  MAC address of host's end of this
 | 
						host_addr		MAC address of host's end of this
 | 
				
			||||||
			  Ethernet over USB link
 | 
									Ethernet over USB link
 | 
				
			||||||
	dev_addr	  MAC address of device's end of this
 | 
						dev_addr		MAC address of device's end of this
 | 
				
			||||||
			  Ethernet over USB link
 | 
									Ethernet over USB link
 | 
				
			||||||
	max_segment_size  Segment size required for P2P connections. This
 | 
						max_segment_size	Segment size required for P2P connections. This
 | 
				
			||||||
			  will set MTU to (max_segment_size - 14 bytes)
 | 
									will set MTU to 14 bytes
 | 
				
			||||||
	===============   ==================================================
 | 
						======================= ==================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
and after creating the functions/ncm.<instance name> they contain default
 | 
					and after creating the functions/ncm.<instance name> they contain default
 | 
				
			||||||
values: qmult is 5, dev_addr and host_addr are randomly selected.
 | 
					values: qmult is 5, dev_addr and host_addr are randomly selected.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										55
									
								
								MAINTAINERS
									
									
									
									
									
								
							
							
						
						
									
										55
									
								
								MAINTAINERS
									
									
									
									
									
								
							| 
						 | 
					@ -4169,14 +4169,14 @@ F:	drivers/firmware/broadcom/tee_bnxt_fw.c
 | 
				
			||||||
F:	drivers/net/ethernet/broadcom/bnxt/
 | 
					F:	drivers/net/ethernet/broadcom/bnxt/
 | 
				
			||||||
F:	include/linux/firmware/broadcom/tee_bnxt_fw.h
 | 
					F:	include/linux/firmware/broadcom/tee_bnxt_fw.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER
 | 
					BROADCOM BRCM80211 IEEE802.11 WIRELESS DRIVERS
 | 
				
			||||||
M:	Arend van Spriel <aspriel@gmail.com>
 | 
					M:	Arend van Spriel <arend.vanspriel@broadcom.com>
 | 
				
			||||||
M:	Franky Lin <franky.lin@broadcom.com>
 | 
					 | 
				
			||||||
M:	Hante Meuleman <hante.meuleman@broadcom.com>
 | 
					 | 
				
			||||||
L:	linux-wireless@vger.kernel.org
 | 
					L:	linux-wireless@vger.kernel.org
 | 
				
			||||||
 | 
					L:	brcm80211@lists.linux.dev
 | 
				
			||||||
L:	brcm80211-dev-list.pdl@broadcom.com
 | 
					L:	brcm80211-dev-list.pdl@broadcom.com
 | 
				
			||||||
S:	Supported
 | 
					S:	Supported
 | 
				
			||||||
F:	drivers/net/wireless/broadcom/brcm80211/
 | 
					F:	drivers/net/wireless/broadcom/brcm80211/
 | 
				
			||||||
 | 
					F:	include/linux/platform_data/brcmfmac.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BROADCOM BRCMSTB GPIO DRIVER
 | 
					BROADCOM BRCMSTB GPIO DRIVER
 | 
				
			||||||
M:	Doug Berger <opendmb@gmail.com>
 | 
					M:	Doug Berger <opendmb@gmail.com>
 | 
				
			||||||
| 
						 | 
					@ -5611,6 +5611,11 @@ S:	Maintained
 | 
				
			||||||
F:	Documentation/devicetree/bindings/net/can/ctu,ctucanfd.yaml
 | 
					F:	Documentation/devicetree/bindings/net/can/ctu,ctucanfd.yaml
 | 
				
			||||||
F:	drivers/net/can/ctucanfd/
 | 
					F:	drivers/net/can/ctucanfd/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CVE ASSIGNMENT CONTACT
 | 
				
			||||||
 | 
					M:	CVE Assignment Team <cve@kernel.org>
 | 
				
			||||||
 | 
					S:	Maintained
 | 
				
			||||||
 | 
					F:	Documentation/process/cve.rst
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CW1200 WLAN driver
 | 
					CW1200 WLAN driver
 | 
				
			||||||
S:	Orphan
 | 
					S:	Orphan
 | 
				
			||||||
F:	drivers/net/wireless/st/cw1200/
 | 
					F:	drivers/net/wireless/st/cw1200/
 | 
				
			||||||
| 
						 | 
					@ -10092,7 +10097,7 @@ L:	linux-i2c@vger.kernel.org
 | 
				
			||||||
S:	Maintained
 | 
					S:	Maintained
 | 
				
			||||||
W:	https://i2c.wiki.kernel.org/
 | 
					W:	https://i2c.wiki.kernel.org/
 | 
				
			||||||
Q:	https://patchwork.ozlabs.org/project/linux-i2c/list/
 | 
					Q:	https://patchwork.ozlabs.org/project/linux-i2c/list/
 | 
				
			||||||
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git
 | 
					T:	git git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git
 | 
				
			||||||
F:	Documentation/devicetree/bindings/i2c/
 | 
					F:	Documentation/devicetree/bindings/i2c/
 | 
				
			||||||
F:	drivers/i2c/algos/
 | 
					F:	drivers/i2c/algos/
 | 
				
			||||||
F:	drivers/i2c/busses/
 | 
					F:	drivers/i2c/busses/
 | 
				
			||||||
| 
						 | 
					@ -10284,7 +10289,7 @@ F:	drivers/scsi/ibmvscsi/ibmvscsi*
 | 
				
			||||||
F:	include/scsi/viosrp.h
 | 
					F:	include/scsi/viosrp.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
IBM Power Virtual SCSI Device Target Driver
 | 
					IBM Power Virtual SCSI Device Target Driver
 | 
				
			||||||
M:	Michael Cyr <mikecyr@linux.ibm.com>
 | 
					M:	Tyrel Datwyler <tyreld@linux.ibm.com>
 | 
				
			||||||
L:	linux-scsi@vger.kernel.org
 | 
					L:	linux-scsi@vger.kernel.org
 | 
				
			||||||
L:	target-devel@vger.kernel.org
 | 
					L:	target-devel@vger.kernel.org
 | 
				
			||||||
S:	Supported
 | 
					S:	Supported
 | 
				
			||||||
| 
						 | 
					@ -10802,11 +10807,11 @@ F:	drivers/gpio/gpio-tangier.h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
INTEL GVT-g DRIVERS (Intel GPU Virtualization)
 | 
					INTEL GVT-g DRIVERS (Intel GPU Virtualization)
 | 
				
			||||||
M:	Zhenyu Wang <zhenyuw@linux.intel.com>
 | 
					M:	Zhenyu Wang <zhenyuw@linux.intel.com>
 | 
				
			||||||
M:	Zhi Wang <zhi.a.wang@intel.com>
 | 
					M:	Zhi Wang <zhi.wang.linux@gmail.com>
 | 
				
			||||||
L:	intel-gvt-dev@lists.freedesktop.org
 | 
					L:	intel-gvt-dev@lists.freedesktop.org
 | 
				
			||||||
L:	intel-gfx@lists.freedesktop.org
 | 
					L:	intel-gfx@lists.freedesktop.org
 | 
				
			||||||
S:	Supported
 | 
					S:	Supported
 | 
				
			||||||
W:	https://01.org/igvt-g
 | 
					W:	https://github.com/intel/gvt-linux/wiki
 | 
				
			||||||
T:	git https://github.com/intel/gvt-linux.git
 | 
					T:	git https://github.com/intel/gvt-linux.git
 | 
				
			||||||
F:	drivers/gpu/drm/i915/gvt/
 | 
					F:	drivers/gpu/drm/i915/gvt/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11128,7 +11133,6 @@ S:	Supported
 | 
				
			||||||
F:	drivers/net/wireless/intel/iwlegacy/
 | 
					F:	drivers/net/wireless/intel/iwlegacy/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
INTEL WIRELESS WIFI LINK (iwlwifi)
 | 
					INTEL WIRELESS WIFI LINK (iwlwifi)
 | 
				
			||||||
M:	Gregory Greenman <gregory.greenman@intel.com>
 | 
					 | 
				
			||||||
M:	Miri Korenblit <miriam.rachel.korenblit@intel.com>
 | 
					M:	Miri Korenblit <miriam.rachel.korenblit@intel.com>
 | 
				
			||||||
L:	linux-wireless@vger.kernel.org
 | 
					L:	linux-wireless@vger.kernel.org
 | 
				
			||||||
S:	Supported
 | 
					S:	Supported
 | 
				
			||||||
| 
						 | 
					@ -11726,6 +11730,7 @@ F:	fs/smb/server/
 | 
				
			||||||
KERNEL UNIT TESTING FRAMEWORK (KUnit)
 | 
					KERNEL UNIT TESTING FRAMEWORK (KUnit)
 | 
				
			||||||
M:	Brendan Higgins <brendanhiggins@google.com>
 | 
					M:	Brendan Higgins <brendanhiggins@google.com>
 | 
				
			||||||
M:	David Gow <davidgow@google.com>
 | 
					M:	David Gow <davidgow@google.com>
 | 
				
			||||||
 | 
					R:	Rae Moar <rmoar@google.com>
 | 
				
			||||||
L:	linux-kselftest@vger.kernel.org
 | 
					L:	linux-kselftest@vger.kernel.org
 | 
				
			||||||
L:	kunit-dev@googlegroups.com
 | 
					L:	kunit-dev@googlegroups.com
 | 
				
			||||||
S:	Maintained
 | 
					S:	Maintained
 | 
				
			||||||
| 
						 | 
					@ -12904,6 +12909,8 @@ M:	Alejandro Colomar <alx@kernel.org>
 | 
				
			||||||
L:	linux-man@vger.kernel.org
 | 
					L:	linux-man@vger.kernel.org
 | 
				
			||||||
S:	Maintained
 | 
					S:	Maintained
 | 
				
			||||||
W:	http://www.kernel.org/doc/man-pages
 | 
					W:	http://www.kernel.org/doc/man-pages
 | 
				
			||||||
 | 
					T:	git git://git.kernel.org/pub/scm/docs/man-pages/man-pages.git
 | 
				
			||||||
 | 
					T:	git git://www.alejandro-colomar.es/src/alx/linux/man-pages/man-pages.git
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MANAGEMENT COMPONENT TRANSPORT PROTOCOL (MCTP)
 | 
					MANAGEMENT COMPONENT TRANSPORT PROTOCOL (MCTP)
 | 
				
			||||||
M:	Jeremy Kerr <jk@codeconstruct.com.au>
 | 
					M:	Jeremy Kerr <jk@codeconstruct.com.au>
 | 
				
			||||||
| 
						 | 
					@ -15179,6 +15186,7 @@ F:	Documentation/networking/net_cachelines/net_device.rst
 | 
				
			||||||
F:	drivers/connector/
 | 
					F:	drivers/connector/
 | 
				
			||||||
F:	drivers/net/
 | 
					F:	drivers/net/
 | 
				
			||||||
F:	include/dt-bindings/net/
 | 
					F:	include/dt-bindings/net/
 | 
				
			||||||
 | 
					F:	include/linux/cn_proc.h
 | 
				
			||||||
F:	include/linux/etherdevice.h
 | 
					F:	include/linux/etherdevice.h
 | 
				
			||||||
F:	include/linux/fcdevice.h
 | 
					F:	include/linux/fcdevice.h
 | 
				
			||||||
F:	include/linux/fddidevice.h
 | 
					F:	include/linux/fddidevice.h
 | 
				
			||||||
| 
						 | 
					@ -15186,6 +15194,7 @@ F:	include/linux/hippidevice.h
 | 
				
			||||||
F:	include/linux/if_*
 | 
					F:	include/linux/if_*
 | 
				
			||||||
F:	include/linux/inetdevice.h
 | 
					F:	include/linux/inetdevice.h
 | 
				
			||||||
F:	include/linux/netdevice.h
 | 
					F:	include/linux/netdevice.h
 | 
				
			||||||
 | 
					F:	include/uapi/linux/cn_proc.h
 | 
				
			||||||
F:	include/uapi/linux/if_*
 | 
					F:	include/uapi/linux/if_*
 | 
				
			||||||
F:	include/uapi/linux/netdevice.h
 | 
					F:	include/uapi/linux/netdevice.h
 | 
				
			||||||
X:	drivers/net/wireless/
 | 
					X:	drivers/net/wireless/
 | 
				
			||||||
| 
						 | 
					@ -15321,7 +15330,7 @@ K:	\bmdo_
 | 
				
			||||||
NETWORKING [MPTCP]
 | 
					NETWORKING [MPTCP]
 | 
				
			||||||
M:	Matthieu Baerts <matttbe@kernel.org>
 | 
					M:	Matthieu Baerts <matttbe@kernel.org>
 | 
				
			||||||
M:	Mat Martineau <martineau@kernel.org>
 | 
					M:	Mat Martineau <martineau@kernel.org>
 | 
				
			||||||
R:	Geliang Tang <geliang.tang@linux.dev>
 | 
					R:	Geliang Tang <geliang@kernel.org>
 | 
				
			||||||
L:	netdev@vger.kernel.org
 | 
					L:	netdev@vger.kernel.org
 | 
				
			||||||
L:	mptcp@lists.linux.dev
 | 
					L:	mptcp@lists.linux.dev
 | 
				
			||||||
S:	Maintained
 | 
					S:	Maintained
 | 
				
			||||||
| 
						 | 
					@ -16834,6 +16843,7 @@ F:	drivers/pci/controller/dwc/*designware*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PCI DRIVER FOR TI DRA7XX/J721E
 | 
					PCI DRIVER FOR TI DRA7XX/J721E
 | 
				
			||||||
M:	Vignesh Raghavendra <vigneshr@ti.com>
 | 
					M:	Vignesh Raghavendra <vigneshr@ti.com>
 | 
				
			||||||
 | 
					R:	Siddharth Vadapalli <s-vadapalli@ti.com>
 | 
				
			||||||
L:	linux-omap@vger.kernel.org
 | 
					L:	linux-omap@vger.kernel.org
 | 
				
			||||||
L:	linux-pci@vger.kernel.org
 | 
					L:	linux-pci@vger.kernel.org
 | 
				
			||||||
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 | 
					L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 | 
				
			||||||
| 
						 | 
					@ -16858,9 +16868,8 @@ F:	Documentation/devicetree/bindings/pci/xilinx-versal-cpm.yaml
 | 
				
			||||||
F:	drivers/pci/controller/pcie-xilinx-cpm.c
 | 
					F:	drivers/pci/controller/pcie-xilinx-cpm.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PCI ENDPOINT SUBSYSTEM
 | 
					PCI ENDPOINT SUBSYSTEM
 | 
				
			||||||
M:	Lorenzo Pieralisi <lpieralisi@kernel.org>
 | 
					M:	Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
 | 
				
			||||||
M:	Krzysztof Wilczyński <kw@linux.com>
 | 
					M:	Krzysztof Wilczyński <kw@linux.com>
 | 
				
			||||||
R:	Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
 | 
					 | 
				
			||||||
R:	Kishon Vijay Abraham I <kishon@kernel.org>
 | 
					R:	Kishon Vijay Abraham I <kishon@kernel.org>
 | 
				
			||||||
L:	linux-pci@vger.kernel.org
 | 
					L:	linux-pci@vger.kernel.org
 | 
				
			||||||
S:	Supported
 | 
					S:	Supported
 | 
				
			||||||
| 
						 | 
					@ -17180,7 +17189,7 @@ R:	John Garry <john.g.garry@oracle.com>
 | 
				
			||||||
R:	Will Deacon <will@kernel.org>
 | 
					R:	Will Deacon <will@kernel.org>
 | 
				
			||||||
R:	James Clark <james.clark@arm.com>
 | 
					R:	James Clark <james.clark@arm.com>
 | 
				
			||||||
R:	Mike Leach <mike.leach@linaro.org>
 | 
					R:	Mike Leach <mike.leach@linaro.org>
 | 
				
			||||||
R:	Leo Yan <leo.yan@linaro.org>
 | 
					R:	Leo Yan <leo.yan@linux.dev>
 | 
				
			||||||
L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 | 
					L:	linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 | 
				
			||||||
S:	Supported
 | 
					S:	Supported
 | 
				
			||||||
F:	tools/build/feature/test-libopencsd.c
 | 
					F:	tools/build/feature/test-libopencsd.c
 | 
				
			||||||
| 
						 | 
					@ -18083,7 +18092,6 @@ F:	drivers/net/ethernet/qualcomm/emac/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
QUALCOMM ETHQOS ETHERNET DRIVER
 | 
					QUALCOMM ETHQOS ETHERNET DRIVER
 | 
				
			||||||
M:	Vinod Koul <vkoul@kernel.org>
 | 
					M:	Vinod Koul <vkoul@kernel.org>
 | 
				
			||||||
R:	Bhupesh Sharma <bhupesh.sharma@linaro.org>
 | 
					 | 
				
			||||||
L:	netdev@vger.kernel.org
 | 
					L:	netdev@vger.kernel.org
 | 
				
			||||||
L:	linux-arm-msm@vger.kernel.org
 | 
					L:	linux-arm-msm@vger.kernel.org
 | 
				
			||||||
S:	Maintained
 | 
					S:	Maintained
 | 
				
			||||||
| 
						 | 
					@ -18430,7 +18438,7 @@ S:	Supported
 | 
				
			||||||
F:	drivers/infiniband/sw/rdmavt
 | 
					F:	drivers/infiniband/sw/rdmavt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RDS - RELIABLE DATAGRAM SOCKETS
 | 
					RDS - RELIABLE DATAGRAM SOCKETS
 | 
				
			||||||
M:	Santosh Shilimkar <santosh.shilimkar@oracle.com>
 | 
					M:	Allison Henderson <allison.henderson@oracle.com>
 | 
				
			||||||
L:	netdev@vger.kernel.org
 | 
					L:	netdev@vger.kernel.org
 | 
				
			||||||
L:	linux-rdma@vger.kernel.org
 | 
					L:	linux-rdma@vger.kernel.org
 | 
				
			||||||
L:	rds-devel@oss.oracle.com (moderated for non-subscribers)
 | 
					L:	rds-devel@oss.oracle.com (moderated for non-subscribers)
 | 
				
			||||||
| 
						 | 
					@ -22014,6 +22022,14 @@ F:	Documentation/devicetree/bindings/media/i2c/ti,ds90*
 | 
				
			||||||
F:	drivers/media/i2c/ds90*
 | 
					F:	drivers/media/i2c/ds90*
 | 
				
			||||||
F:	include/media/i2c/ds90*
 | 
					F:	include/media/i2c/ds90*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TI HDC302X HUMIDITY DRIVER
 | 
				
			||||||
 | 
					M:	Javier Carrasco <javier.carrasco.cruz@gmail.com>
 | 
				
			||||||
 | 
					M:	Li peiyu <579lpy@gmail.com>
 | 
				
			||||||
 | 
					L:	linux-iio@vger.kernel.org
 | 
				
			||||||
 | 
					S:	Maintained
 | 
				
			||||||
 | 
					F:	Documentation/devicetree/bindings/iio/humidity/ti,hdc3020.yaml
 | 
				
			||||||
 | 
					F:	drivers/iio/humidity/hdc3020.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TI ICSSG ETHERNET DRIVER (ICSSG)
 | 
					TI ICSSG ETHERNET DRIVER (ICSSG)
 | 
				
			||||||
R:	MD Danish Anwar <danishanwar@ti.com>
 | 
					R:	MD Danish Anwar <danishanwar@ti.com>
 | 
				
			||||||
R:	Roger Quadros <rogerq@kernel.org>
 | 
					R:	Roger Quadros <rogerq@kernel.org>
 | 
				
			||||||
| 
						 | 
					@ -24348,13 +24364,6 @@ T:	git git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs.git
 | 
				
			||||||
F:	Documentation/filesystems/zonefs.rst
 | 
					F:	Documentation/filesystems/zonefs.rst
 | 
				
			||||||
F:	fs/zonefs/
 | 
					F:	fs/zonefs/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ZPOOL COMPRESSED PAGE STORAGE API
 | 
					 | 
				
			||||||
M:	Dan Streetman <ddstreet@ieee.org>
 | 
					 | 
				
			||||||
L:	linux-mm@kvack.org
 | 
					 | 
				
			||||||
S:	Maintained
 | 
					 | 
				
			||||||
F:	include/linux/zpool.h
 | 
					 | 
				
			||||||
F:	mm/zpool.c
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
ZR36067 VIDEO FOR LINUX DRIVER
 | 
					ZR36067 VIDEO FOR LINUX DRIVER
 | 
				
			||||||
M:	Corentin Labbe <clabbe@baylibre.com>
 | 
					M:	Corentin Labbe <clabbe@baylibre.com>
 | 
				
			||||||
L:	mjpeg-users@lists.sourceforge.net
 | 
					L:	mjpeg-users@lists.sourceforge.net
 | 
				
			||||||
| 
						 | 
					@ -24406,7 +24415,9 @@ M:	Nhat Pham <nphamcs@gmail.com>
 | 
				
			||||||
L:	linux-mm@kvack.org
 | 
					L:	linux-mm@kvack.org
 | 
				
			||||||
S:	Maintained
 | 
					S:	Maintained
 | 
				
			||||||
F:	Documentation/admin-guide/mm/zswap.rst
 | 
					F:	Documentation/admin-guide/mm/zswap.rst
 | 
				
			||||||
 | 
					F:	include/linux/zpool.h
 | 
				
			||||||
F:	include/linux/zswap.h
 | 
					F:	include/linux/zswap.h
 | 
				
			||||||
 | 
					F:	mm/zpool.c
 | 
				
			||||||
F:	mm/zswap.c
 | 
					F:	mm/zswap.c
 | 
				
			||||||
 | 
					
 | 
				
			||||||
THE REST
 | 
					THE REST
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										16
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								Makefile
									
									
									
									
									
								
							| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
VERSION = 6
 | 
					VERSION = 6
 | 
				
			||||||
PATCHLEVEL = 8
 | 
					PATCHLEVEL = 8
 | 
				
			||||||
SUBLEVEL = 0
 | 
					SUBLEVEL = 0
 | 
				
			||||||
EXTRAVERSION = -rc2
 | 
					EXTRAVERSION = -rc5
 | 
				
			||||||
NAME = Hurr durr I'ma ninja sloth
 | 
					NAME = Hurr durr I'ma ninja sloth
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# *DOCUMENTATION*
 | 
					# *DOCUMENTATION*
 | 
				
			||||||
| 
						 | 
					@ -294,15 +294,15 @@ may-sync-config	:= 1
 | 
				
			||||||
single-build	:=
 | 
					single-build	:=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifneq ($(filter $(no-dot-config-targets), $(MAKECMDGOALS)),)
 | 
					ifneq ($(filter $(no-dot-config-targets), $(MAKECMDGOALS)),)
 | 
				
			||||||
	ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),)
 | 
					    ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),)
 | 
				
			||||||
		need-config :=
 | 
							need-config :=
 | 
				
			||||||
	endif
 | 
					    endif
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifneq ($(filter $(no-sync-config-targets), $(MAKECMDGOALS)),)
 | 
					ifneq ($(filter $(no-sync-config-targets), $(MAKECMDGOALS)),)
 | 
				
			||||||
	ifeq ($(filter-out $(no-sync-config-targets), $(MAKECMDGOALS)),)
 | 
					    ifeq ($(filter-out $(no-sync-config-targets), $(MAKECMDGOALS)),)
 | 
				
			||||||
		may-sync-config :=
 | 
							may-sync-config :=
 | 
				
			||||||
	endif
 | 
					    endif
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
need-compiler := $(may-sync-config)
 | 
					need-compiler := $(may-sync-config)
 | 
				
			||||||
| 
						 | 
					@ -323,9 +323,9 @@ endif
 | 
				
			||||||
# We cannot build single targets and the others at the same time
 | 
					# We cannot build single targets and the others at the same time
 | 
				
			||||||
ifneq ($(filter $(single-targets), $(MAKECMDGOALS)),)
 | 
					ifneq ($(filter $(single-targets), $(MAKECMDGOALS)),)
 | 
				
			||||||
	single-build := 1
 | 
						single-build := 1
 | 
				
			||||||
	ifneq ($(filter-out $(single-targets), $(MAKECMDGOALS)),)
 | 
					    ifneq ($(filter-out $(single-targets), $(MAKECMDGOALS)),)
 | 
				
			||||||
		mixed-build := 1
 | 
							mixed-build := 1
 | 
				
			||||||
	endif
 | 
					    endif
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# For "make -j clean all", "make -j mrproper defconfig all", etc.
 | 
					# For "make -j clean all", "make -j mrproper defconfig all", etc.
 | 
				
			||||||
| 
						 | 
					@ -1666,7 +1666,7 @@ help:
 | 
				
			||||||
	@echo  '                       (sparse by default)'
 | 
						@echo  '                       (sparse by default)'
 | 
				
			||||||
	@echo  '  make C=2   [targets] Force check of all c source with $$CHECK'
 | 
						@echo  '  make C=2   [targets] Force check of all c source with $$CHECK'
 | 
				
			||||||
	@echo  '  make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections'
 | 
						@echo  '  make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections'
 | 
				
			||||||
	@echo  '  make W=n   [targets] Enable extra build checks, n=1,2,3 where'
 | 
						@echo  '  make W=n   [targets] Enable extra build checks, n=1,2,3,c,e where'
 | 
				
			||||||
	@echo  '		1: warnings which may be relevant and do not occur too often'
 | 
						@echo  '		1: warnings which may be relevant and do not occur too often'
 | 
				
			||||||
	@echo  '		2: warnings which occur quite often but may still be relevant'
 | 
						@echo  '		2: warnings which occur quite often but may still be relevant'
 | 
				
			||||||
	@echo  '		3: more obscure warnings, can most likely be ignored'
 | 
						@echo  '		3: more obscure warnings, can most likely be ignored'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -673,6 +673,7 @@ config SHADOW_CALL_STACK
 | 
				
			||||||
	bool "Shadow Call Stack"
 | 
						bool "Shadow Call Stack"
 | 
				
			||||||
	depends on ARCH_SUPPORTS_SHADOW_CALL_STACK
 | 
						depends on ARCH_SUPPORTS_SHADOW_CALL_STACK
 | 
				
			||||||
	depends on DYNAMIC_FTRACE_WITH_ARGS || DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER
 | 
						depends on DYNAMIC_FTRACE_WITH_ARGS || DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER
 | 
				
			||||||
 | 
						depends on MMU
 | 
				
			||||||
	help
 | 
						help
 | 
				
			||||||
	  This option enables the compiler's Shadow Call Stack, which
 | 
						  This option enables the compiler's Shadow Call Stack, which
 | 
				
			||||||
	  uses a shadow stack to protect function return addresses from
 | 
						  uses a shadow stack to protect function return addresses from
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,7 +31,7 @@
 | 
				
			||||||
static __always_inline bool arch_static_branch(struct static_key *key,
 | 
					static __always_inline bool arch_static_branch(struct static_key *key,
 | 
				
			||||||
					       bool branch)
 | 
										       bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)"	\n"
 | 
						asm goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)"		\n"
 | 
				
			||||||
		 "1:							\n"
 | 
							 "1:							\n"
 | 
				
			||||||
		 "nop							\n"
 | 
							 "nop							\n"
 | 
				
			||||||
		 ".pushsection __jump_table, \"aw\"			\n"
 | 
							 ".pushsection __jump_table, \"aw\"			\n"
 | 
				
			||||||
| 
						 | 
					@ -47,7 +47,7 @@ static __always_inline bool arch_static_branch(struct static_key *key,
 | 
				
			||||||
static __always_inline bool arch_static_branch_jump(struct static_key *key,
 | 
					static __always_inline bool arch_static_branch_jump(struct static_key *key,
 | 
				
			||||||
						    bool branch)
 | 
											    bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)"	\n"
 | 
						asm goto(".balign "__stringify(JUMP_LABEL_NOP_SIZE)"		\n"
 | 
				
			||||||
		 "1:							\n"
 | 
							 "1:							\n"
 | 
				
			||||||
		 "b %l[l_yes]						\n"
 | 
							 "b %l[l_yes]						\n"
 | 
				
			||||||
		 ".pushsection __jump_table, \"aw\"			\n"
 | 
							 ".pushsection __jump_table, \"aw\"			\n"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 | 
					static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto("1:\n\t"
 | 
						asm goto("1:\n\t"
 | 
				
			||||||
		 WASM(nop) "\n\t"
 | 
							 WASM(nop) "\n\t"
 | 
				
			||||||
		 ".pushsection __jump_table,  \"aw\"\n\t"
 | 
							 ".pushsection __jump_table,  \"aw\"\n\t"
 | 
				
			||||||
		 ".word 1b, %l[l_yes], %c0\n\t"
 | 
							 ".word 1b, %l[l_yes], %c0\n\t"
 | 
				
			||||||
| 
						 | 
					@ -25,7 +25,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 | 
					static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto("1:\n\t"
 | 
						asm goto("1:\n\t"
 | 
				
			||||||
		 WASM(b) " %l[l_yes]\n\t"
 | 
							 WASM(b) " %l[l_yes]\n\t"
 | 
				
			||||||
		 ".pushsection __jump_table,  \"aw\"\n\t"
 | 
							 ".pushsection __jump_table,  \"aw\"\n\t"
 | 
				
			||||||
		 ".word 1b, %l[l_yes], %c0\n\t"
 | 
							 ".word 1b, %l[l_yes], %c0\n\t"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -298,6 +298,8 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
 | 
				
			||||||
		goto done;
 | 
							goto done;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	count_vm_vma_lock_event(VMA_LOCK_RETRY);
 | 
						count_vm_vma_lock_event(VMA_LOCK_RETRY);
 | 
				
			||||||
 | 
						if (fault & VM_FAULT_MAJOR)
 | 
				
			||||||
 | 
							flags |= FAULT_FLAG_TRIED;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Quick path to respond to signals */
 | 
						/* Quick path to respond to signals */
 | 
				
			||||||
	if (fault_signal_pending(fault, regs)) {
 | 
						if (fault_signal_pending(fault, regs)) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -195,7 +195,7 @@ vdso_prepare: prepare0
 | 
				
			||||||
	include/generated/vdso-offsets.h arch/arm64/kernel/vdso/vdso.so
 | 
						include/generated/vdso-offsets.h arch/arm64/kernel/vdso/vdso.so
 | 
				
			||||||
ifdef CONFIG_COMPAT_VDSO
 | 
					ifdef CONFIG_COMPAT_VDSO
 | 
				
			||||||
	$(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso32 \
 | 
						$(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso32 \
 | 
				
			||||||
	include/generated/vdso32-offsets.h arch/arm64/kernel/vdso32/vdso.so
 | 
						arch/arm64/kernel/vdso32/vdso.so
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -229,7 +229,7 @@ alternative_has_cap_likely(const unsigned long cpucap)
 | 
				
			||||||
	if (!cpucap_is_possible(cpucap))
 | 
						if (!cpucap_is_possible(cpucap))
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	asm_volatile_goto(
 | 
						asm goto(
 | 
				
			||||||
	ALTERNATIVE_CB("b	%l[l_no]", %[cpucap], alt_cb_patch_nops)
 | 
						ALTERNATIVE_CB("b	%l[l_no]", %[cpucap], alt_cb_patch_nops)
 | 
				
			||||||
	:
 | 
						:
 | 
				
			||||||
	: [cpucap] "i" (cpucap)
 | 
						: [cpucap] "i" (cpucap)
 | 
				
			||||||
| 
						 | 
					@ -247,7 +247,7 @@ alternative_has_cap_unlikely(const unsigned long cpucap)
 | 
				
			||||||
	if (!cpucap_is_possible(cpucap))
 | 
						if (!cpucap_is_possible(cpucap))
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	asm_volatile_goto(
 | 
						asm goto(
 | 
				
			||||||
	ALTERNATIVE("nop", "b	%l[l_yes]", %[cpucap])
 | 
						ALTERNATIVE("nop", "b	%l[l_yes]", %[cpucap])
 | 
				
			||||||
	:
 | 
						:
 | 
				
			||||||
	: [cpucap] "i" (cpucap)
 | 
						: [cpucap] "i" (cpucap)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,7 +83,7 @@ struct arm64_ftr_bits {
 | 
				
			||||||
 * to full-0 denotes that this field has no override
 | 
					 * to full-0 denotes that this field has no override
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * A @mask field set to full-0 with the corresponding @val field set
 | 
					 * A @mask field set to full-0 with the corresponding @val field set
 | 
				
			||||||
 * to full-1 denotes thath this field has an invalid override.
 | 
					 * to full-1 denotes that this field has an invalid override.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
struct arm64_ftr_override {
 | 
					struct arm64_ftr_override {
 | 
				
			||||||
	u64		val;
 | 
						u64		val;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -61,6 +61,7 @@
 | 
				
			||||||
#define ARM_CPU_IMP_HISI		0x48
 | 
					#define ARM_CPU_IMP_HISI		0x48
 | 
				
			||||||
#define ARM_CPU_IMP_APPLE		0x61
 | 
					#define ARM_CPU_IMP_APPLE		0x61
 | 
				
			||||||
#define ARM_CPU_IMP_AMPERE		0xC0
 | 
					#define ARM_CPU_IMP_AMPERE		0xC0
 | 
				
			||||||
 | 
					#define ARM_CPU_IMP_MICROSOFT		0x6D
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define ARM_CPU_PART_AEM_V8		0xD0F
 | 
					#define ARM_CPU_PART_AEM_V8		0xD0F
 | 
				
			||||||
#define ARM_CPU_PART_FOUNDATION		0xD00
 | 
					#define ARM_CPU_PART_FOUNDATION		0xD00
 | 
				
			||||||
| 
						 | 
					@ -135,6 +136,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define AMPERE_CPU_PART_AMPERE1		0xAC3
 | 
					#define AMPERE_CPU_PART_AMPERE1		0xAC3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MICROSOFT_CPU_PART_AZURE_COBALT_100	0xD49 /* Based on r0p0 of ARM Neoverse N2 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define MIDR_CORTEX_A53 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A53)
 | 
					#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_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)
 | 
					#define MIDR_CORTEX_A72 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A72)
 | 
				
			||||||
| 
						 | 
					@ -193,6 +196,7 @@
 | 
				
			||||||
#define MIDR_APPLE_M2_BLIZZARD_MAX MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M2_BLIZZARD_MAX)
 | 
					#define MIDR_APPLE_M2_BLIZZARD_MAX MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M2_BLIZZARD_MAX)
 | 
				
			||||||
#define MIDR_APPLE_M2_AVALANCHE_MAX MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M2_AVALANCHE_MAX)
 | 
					#define MIDR_APPLE_M2_AVALANCHE_MAX MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M2_AVALANCHE_MAX)
 | 
				
			||||||
#define MIDR_AMPERE1 MIDR_CPU_MODEL(ARM_CPU_IMP_AMPERE, AMPERE_CPU_PART_AMPERE1)
 | 
					#define MIDR_AMPERE1 MIDR_CPU_MODEL(ARM_CPU_IMP_AMPERE, AMPERE_CPU_PART_AMPERE1)
 | 
				
			||||||
 | 
					#define MIDR_MICROSOFT_AZURE_COBALT_100 MIDR_CPU_MODEL(ARM_CPU_IMP_MICROSOFT, MICROSOFT_CPU_PART_AZURE_COBALT_100)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Fujitsu Erratum 010001 affects A64FX 1.0 and 1.1, (v0r0 and v1r0) */
 | 
					/* Fujitsu Erratum 010001 affects A64FX 1.0 and 1.1, (v0r0 and v1r0) */
 | 
				
			||||||
#define MIDR_FUJITSU_ERRATUM_010001		MIDR_FUJITSU_A64FX
 | 
					#define MIDR_FUJITSU_ERRATUM_010001		MIDR_FUJITSU_A64FX
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -62,13 +62,13 @@ static inline void cpacr_restore(unsigned long cpacr)
 | 
				
			||||||
 * When we defined the maximum SVE vector length we defined the ABI so
 | 
					 * When we defined the maximum SVE vector length we defined the ABI so
 | 
				
			||||||
 * that the maximum vector length included all the reserved for future
 | 
					 * that the maximum vector length included all the reserved for future
 | 
				
			||||||
 * expansion bits in ZCR rather than those just currently defined by
 | 
					 * expansion bits in ZCR rather than those just currently defined by
 | 
				
			||||||
 * the architecture. While SME follows a similar pattern the fact that
 | 
					 * the architecture.  Using this length to allocate worst size buffers
 | 
				
			||||||
 * it includes a square matrix means that any allocations that attempt
 | 
					 * results in excessively large allocations, and this effect is even
 | 
				
			||||||
 * to cover the maximum potential vector length (such as happen with
 | 
					 * more pronounced for SME due to ZA.  Define more suitable VLs for
 | 
				
			||||||
 * the regset used for ptrace) end up being extremely large. Define
 | 
					 * these situations.
 | 
				
			||||||
 * the much lower actual limit for use in such situations.
 | 
					 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#define SME_VQ_MAX	16
 | 
					#define ARCH_SVE_VQ_MAX ((ZCR_ELx_LEN_MASK >> ZCR_ELx_LEN_SHIFT) + 1)
 | 
				
			||||||
 | 
					#define SME_VQ_MAX	((SMCR_ELx_LEN_MASK >> SMCR_ELx_LEN_SHIFT) + 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct task_struct;
 | 
					struct task_struct;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,17 +15,21 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define JUMP_LABEL_NOP_SIZE		AARCH64_INSN_SIZE
 | 
					#define JUMP_LABEL_NOP_SIZE		AARCH64_INSN_SIZE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Prefer the constraint "S" to support PIC with GCC. Clang before 19 does not
 | 
				
			||||||
 | 
					 * support "S" on a symbol with a constant offset, so we use "i" as a fallback.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
static __always_inline bool arch_static_branch(struct static_key * const key,
 | 
					static __always_inline bool arch_static_branch(struct static_key * const key,
 | 
				
			||||||
					       const bool branch)
 | 
										       const bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto(
 | 
						asm goto(
 | 
				
			||||||
		"1:	nop					\n\t"
 | 
							"1:	nop					\n\t"
 | 
				
			||||||
		 "	.pushsection	__jump_table, \"aw\"	\n\t"
 | 
							 "	.pushsection	__jump_table, \"aw\"	\n\t"
 | 
				
			||||||
		 "	.align		3			\n\t"
 | 
							 "	.align		3			\n\t"
 | 
				
			||||||
		 "	.long		1b - ., %l[l_yes] - .	\n\t"
 | 
							 "	.long		1b - ., %l[l_yes] - .	\n\t"
 | 
				
			||||||
		 "	.quad		%c0 - .			\n\t"
 | 
							 "	.quad		(%[key] - .) + %[bit0]  \n\t"
 | 
				
			||||||
		 "	.popsection				\n\t"
 | 
							 "	.popsection				\n\t"
 | 
				
			||||||
		 :  :  "i"(&((char *)key)[branch]) :  : l_yes);
 | 
							 :  :  [key]"Si"(key), [bit0]"i"(branch) :  : l_yes);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return false;
 | 
						return false;
 | 
				
			||||||
l_yes:
 | 
					l_yes:
 | 
				
			||||||
| 
						 | 
					@ -35,14 +39,14 @@ static __always_inline bool arch_static_branch(struct static_key * const key,
 | 
				
			||||||
static __always_inline bool arch_static_branch_jump(struct static_key * const key,
 | 
					static __always_inline bool arch_static_branch_jump(struct static_key * const key,
 | 
				
			||||||
						    const bool branch)
 | 
											    const bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto(
 | 
						asm goto(
 | 
				
			||||||
		"1:	b		%l[l_yes]		\n\t"
 | 
							"1:	b		%l[l_yes]		\n\t"
 | 
				
			||||||
		 "	.pushsection	__jump_table, \"aw\"	\n\t"
 | 
							 "	.pushsection	__jump_table, \"aw\"	\n\t"
 | 
				
			||||||
		 "	.align		3			\n\t"
 | 
							 "	.align		3			\n\t"
 | 
				
			||||||
		 "	.long		1b - ., %l[l_yes] - .	\n\t"
 | 
							 "	.long		1b - ., %l[l_yes] - .	\n\t"
 | 
				
			||||||
		 "	.quad		%c0 - .			\n\t"
 | 
							 "	.quad		(%[key] - .) + %[bit0]  \n\t"
 | 
				
			||||||
		 "	.popsection				\n\t"
 | 
							 "	.popsection				\n\t"
 | 
				
			||||||
		 :  :  "i"(&((char *)key)[branch]) :  : l_yes);
 | 
							 :  :  [key]"Si"(key), [bit0]"i"(branch) :  : l_yes);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return false;
 | 
						return false;
 | 
				
			||||||
l_yes:
 | 
					l_yes:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,9 +17,6 @@
 | 
				
			||||||
#ifndef __ASSEMBLY__
 | 
					#ifndef __ASSEMBLY__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <generated/vdso-offsets.h>
 | 
					#include <generated/vdso-offsets.h>
 | 
				
			||||||
#ifdef CONFIG_COMPAT_VDSO
 | 
					 | 
				
			||||||
#include <generated/vdso32-offsets.h>
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define VDSO_SYMBOL(base, name)						   \
 | 
					#define VDSO_SYMBOL(base, name)						   \
 | 
				
			||||||
({									   \
 | 
					({									   \
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -77,9 +77,9 @@ obj-$(CONFIG_UNWIND_PATCH_PAC_INTO_SCS)	+= patch-scs.o
 | 
				
			||||||
# We need to prevent the SCS patching code from patching itself. Using
 | 
					# We need to prevent the SCS patching code from patching itself. Using
 | 
				
			||||||
# -mbranch-protection=none here to avoid the patchable PAC opcodes from being
 | 
					# -mbranch-protection=none here to avoid the patchable PAC opcodes from being
 | 
				
			||||||
# generated triggers an issue with full LTO on Clang, which stops emitting PAC
 | 
					# generated triggers an issue with full LTO on Clang, which stops emitting PAC
 | 
				
			||||||
# instructions altogether. So instead, omit the unwind tables used by the
 | 
					# instructions altogether. So disable LTO as well for the compilation unit.
 | 
				
			||||||
# patching code, so it will not be able to locate its own PAC instructions.
 | 
					CFLAGS_patch-scs.o			+= -mbranch-protection=none
 | 
				
			||||||
CFLAGS_patch-scs.o			+= -fno-asynchronous-unwind-tables -fno-unwind-tables
 | 
					CFLAGS_REMOVE_patch-scs.o		+= $(CC_FLAGS_LTO)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Force dependency (vdso*-wrap.S includes vdso.so through incbin)
 | 
					# Force dependency (vdso*-wrap.S includes vdso.so through incbin)
 | 
				
			||||||
$(obj)/vdso-wrap.o: $(obj)/vdso/vdso.so
 | 
					$(obj)/vdso-wrap.o: $(obj)/vdso/vdso.so
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -374,6 +374,7 @@ static const struct midr_range erratum_1463225[] = {
 | 
				
			||||||
static const struct midr_range trbe_overwrite_fill_mode_cpus[] = {
 | 
					static const struct midr_range trbe_overwrite_fill_mode_cpus[] = {
 | 
				
			||||||
#ifdef CONFIG_ARM64_ERRATUM_2139208
 | 
					#ifdef CONFIG_ARM64_ERRATUM_2139208
 | 
				
			||||||
	MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
 | 
						MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
 | 
				
			||||||
 | 
						MIDR_ALL_VERSIONS(MIDR_MICROSOFT_AZURE_COBALT_100),
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#ifdef CONFIG_ARM64_ERRATUM_2119858
 | 
					#ifdef CONFIG_ARM64_ERRATUM_2119858
 | 
				
			||||||
	MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
 | 
						MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
 | 
				
			||||||
| 
						 | 
					@ -387,6 +388,7 @@ static const struct midr_range trbe_overwrite_fill_mode_cpus[] = {
 | 
				
			||||||
static const struct midr_range tsb_flush_fail_cpus[] = {
 | 
					static const struct midr_range tsb_flush_fail_cpus[] = {
 | 
				
			||||||
#ifdef CONFIG_ARM64_ERRATUM_2067961
 | 
					#ifdef CONFIG_ARM64_ERRATUM_2067961
 | 
				
			||||||
	MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
 | 
						MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
 | 
				
			||||||
 | 
						MIDR_ALL_VERSIONS(MIDR_MICROSOFT_AZURE_COBALT_100),
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#ifdef CONFIG_ARM64_ERRATUM_2054223
 | 
					#ifdef CONFIG_ARM64_ERRATUM_2054223
 | 
				
			||||||
	MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
 | 
						MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
 | 
				
			||||||
| 
						 | 
					@ -399,6 +401,7 @@ static const struct midr_range tsb_flush_fail_cpus[] = {
 | 
				
			||||||
static struct midr_range trbe_write_out_of_range_cpus[] = {
 | 
					static struct midr_range trbe_write_out_of_range_cpus[] = {
 | 
				
			||||||
#ifdef CONFIG_ARM64_ERRATUM_2253138
 | 
					#ifdef CONFIG_ARM64_ERRATUM_2253138
 | 
				
			||||||
	MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
 | 
						MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N2),
 | 
				
			||||||
 | 
						MIDR_ALL_VERSIONS(MIDR_MICROSOFT_AZURE_COBALT_100),
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
#ifdef CONFIG_ARM64_ERRATUM_2224489
 | 
					#ifdef CONFIG_ARM64_ERRATUM_2224489
 | 
				
			||||||
	MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
 | 
						MIDR_ALL_VERSIONS(MIDR_CORTEX_A710),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1635,7 +1635,7 @@ void fpsimd_preserve_current_state(void)
 | 
				
			||||||
void fpsimd_signal_preserve_current_state(void)
 | 
					void fpsimd_signal_preserve_current_state(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	fpsimd_preserve_current_state();
 | 
						fpsimd_preserve_current_state();
 | 
				
			||||||
	if (test_thread_flag(TIF_SVE))
 | 
						if (current->thread.fp_type == FP_STATE_SVE)
 | 
				
			||||||
		sve_to_fpsimd(current);
 | 
							sve_to_fpsimd(current);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1500,7 +1500,8 @@ static const struct user_regset aarch64_regsets[] = {
 | 
				
			||||||
#ifdef CONFIG_ARM64_SVE
 | 
					#ifdef CONFIG_ARM64_SVE
 | 
				
			||||||
	[REGSET_SVE] = { /* Scalable Vector Extension */
 | 
						[REGSET_SVE] = { /* Scalable Vector Extension */
 | 
				
			||||||
		.core_note_type = NT_ARM_SVE,
 | 
							.core_note_type = NT_ARM_SVE,
 | 
				
			||||||
		.n = DIV_ROUND_UP(SVE_PT_SIZE(SVE_VQ_MAX, SVE_PT_REGS_SVE),
 | 
							.n = DIV_ROUND_UP(SVE_PT_SIZE(ARCH_SVE_VQ_MAX,
 | 
				
			||||||
 | 
										      SVE_PT_REGS_SVE),
 | 
				
			||||||
				  SVE_VQ_BYTES),
 | 
									  SVE_VQ_BYTES),
 | 
				
			||||||
		.size = SVE_VQ_BYTES,
 | 
							.size = SVE_VQ_BYTES,
 | 
				
			||||||
		.align = SVE_VQ_BYTES,
 | 
							.align = SVE_VQ_BYTES,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -242,7 +242,7 @@ static int preserve_sve_context(struct sve_context __user *ctx)
 | 
				
			||||||
		vl = task_get_sme_vl(current);
 | 
							vl = task_get_sme_vl(current);
 | 
				
			||||||
		vq = sve_vq_from_vl(vl);
 | 
							vq = sve_vq_from_vl(vl);
 | 
				
			||||||
		flags |= SVE_SIG_FLAG_SM;
 | 
							flags |= SVE_SIG_FLAG_SM;
 | 
				
			||||||
	} else if (test_thread_flag(TIF_SVE)) {
 | 
						} else if (current->thread.fp_type == FP_STATE_SVE) {
 | 
				
			||||||
		vq = sve_vq_from_vl(vl);
 | 
							vq = sve_vq_from_vl(vl);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -878,7 +878,7 @@ static int setup_sigframe_layout(struct rt_sigframe_user_layout *user,
 | 
				
			||||||
	if (system_supports_sve() || system_supports_sme()) {
 | 
						if (system_supports_sve() || system_supports_sme()) {
 | 
				
			||||||
		unsigned int vq = 0;
 | 
							unsigned int vq = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (add_all || test_thread_flag(TIF_SVE) ||
 | 
							if (add_all || current->thread.fp_type == FP_STATE_SVE ||
 | 
				
			||||||
		    thread_sm_enabled(¤t->thread)) {
 | 
							    thread_sm_enabled(¤t->thread)) {
 | 
				
			||||||
			int vl = max(sve_max_vl(), sme_max_vl());
 | 
								int vl = max(sve_max_vl(), sme_max_vl());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -127,9 +127,6 @@ obj-vdso := $(c-obj-vdso) $(c-obj-vdso-gettimeofday) $(asm-obj-vdso)
 | 
				
			||||||
targets += vdso.lds
 | 
					targets += vdso.lds
 | 
				
			||||||
CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
 | 
					CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
include/generated/vdso32-offsets.h: $(obj)/vdso32.so.dbg FORCE
 | 
					 | 
				
			||||||
	$(call if_changed,vdsosym)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Strip rule for vdso.so
 | 
					# Strip rule for vdso.so
 | 
				
			||||||
$(obj)/vdso.so: OBJCOPYFLAGS := -S
 | 
					$(obj)/vdso.so: OBJCOPYFLAGS := -S
 | 
				
			||||||
$(obj)/vdso.so: $(obj)/vdso32.so.dbg FORCE
 | 
					$(obj)/vdso.so: $(obj)/vdso32.so.dbg FORCE
 | 
				
			||||||
| 
						 | 
					@ -166,9 +163,3 @@ quiet_cmd_vdsoas = AS32    $@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
quiet_cmd_vdsomunge = MUNGE   $@
 | 
					quiet_cmd_vdsomunge = MUNGE   $@
 | 
				
			||||||
      cmd_vdsomunge = $(obj)/$(munge) $< $@
 | 
					      cmd_vdsomunge = $(obj)/$(munge) $< $@
 | 
				
			||||||
 | 
					 | 
				
			||||||
# Generate vDSO offsets using helper script (borrowed from the 64-bit vDSO)
 | 
					 | 
				
			||||||
gen-vdsosym := $(srctree)/$(src)/../vdso/gen_vdso_offsets.sh
 | 
					 | 
				
			||||||
quiet_cmd_vdsosym = VDSOSYM $@
 | 
					 | 
				
			||||||
# The AArch64 nm should be able to read an AArch32 binary
 | 
					 | 
				
			||||||
      cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,6 @@
 | 
				
			||||||
# KVM configuration
 | 
					# KVM configuration
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
source "virt/lib/Kconfig"
 | 
					 | 
				
			||||||
source "virt/kvm/Kconfig"
 | 
					source "virt/kvm/Kconfig"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
menuconfig VIRTUALIZATION
 | 
					menuconfig VIRTUALIZATION
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1419,7 +1419,6 @@ kvm_pte_t *kvm_pgtable_stage2_create_unlinked(struct kvm_pgtable *pgt,
 | 
				
			||||||
				 level + 1);
 | 
									 level + 1);
 | 
				
			||||||
	if (ret) {
 | 
						if (ret) {
 | 
				
			||||||
		kvm_pgtable_stage2_free_unlinked(mm_ops, pgtable, level);
 | 
							kvm_pgtable_stage2_free_unlinked(mm_ops, pgtable, level);
 | 
				
			||||||
		mm_ops->put_page(pgtable);
 | 
					 | 
				
			||||||
		return ERR_PTR(ret);
 | 
							return ERR_PTR(ret);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1502,7 +1501,6 @@ static int stage2_split_walker(const struct kvm_pgtable_visit_ctx *ctx,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!stage2_try_break_pte(ctx, mmu)) {
 | 
						if (!stage2_try_break_pte(ctx, mmu)) {
 | 
				
			||||||
		kvm_pgtable_stage2_free_unlinked(mm_ops, childp, level);
 | 
							kvm_pgtable_stage2_free_unlinked(mm_ops, childp, level);
 | 
				
			||||||
		mm_ops->put_page(childp);
 | 
					 | 
				
			||||||
		return -EAGAIN;
 | 
							return -EAGAIN;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -101,6 +101,17 @@ void __init kvm_hyp_reserve(void)
 | 
				
			||||||
		 hyp_mem_base);
 | 
							 hyp_mem_base);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static void __pkvm_destroy_hyp_vm(struct kvm *host_kvm)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						if (host_kvm->arch.pkvm.handle) {
 | 
				
			||||||
 | 
							WARN_ON(kvm_call_hyp_nvhe(__pkvm_teardown_vm,
 | 
				
			||||||
 | 
										  host_kvm->arch.pkvm.handle));
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						host_kvm->arch.pkvm.handle = 0;
 | 
				
			||||||
 | 
						free_hyp_memcache(&host_kvm->arch.pkvm.teardown_mc);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Allocates and donates memory for hypervisor VM structs at EL2.
 | 
					 * Allocates and donates memory for hypervisor VM structs at EL2.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
| 
						 | 
					@ -181,7 +192,7 @@ static int __pkvm_create_hyp_vm(struct kvm *host_kvm)
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
destroy_vm:
 | 
					destroy_vm:
 | 
				
			||||||
	pkvm_destroy_hyp_vm(host_kvm);
 | 
						__pkvm_destroy_hyp_vm(host_kvm);
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
free_vm:
 | 
					free_vm:
 | 
				
			||||||
	free_pages_exact(hyp_vm, hyp_vm_sz);
 | 
						free_pages_exact(hyp_vm, hyp_vm_sz);
 | 
				
			||||||
| 
						 | 
					@ -194,23 +205,19 @@ int pkvm_create_hyp_vm(struct kvm *host_kvm)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int ret = 0;
 | 
						int ret = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	mutex_lock(&host_kvm->lock);
 | 
						mutex_lock(&host_kvm->arch.config_lock);
 | 
				
			||||||
	if (!host_kvm->arch.pkvm.handle)
 | 
						if (!host_kvm->arch.pkvm.handle)
 | 
				
			||||||
		ret = __pkvm_create_hyp_vm(host_kvm);
 | 
							ret = __pkvm_create_hyp_vm(host_kvm);
 | 
				
			||||||
	mutex_unlock(&host_kvm->lock);
 | 
						mutex_unlock(&host_kvm->arch.config_lock);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return ret;
 | 
						return ret;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void pkvm_destroy_hyp_vm(struct kvm *host_kvm)
 | 
					void pkvm_destroy_hyp_vm(struct kvm *host_kvm)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (host_kvm->arch.pkvm.handle) {
 | 
						mutex_lock(&host_kvm->arch.config_lock);
 | 
				
			||||||
		WARN_ON(kvm_call_hyp_nvhe(__pkvm_teardown_vm,
 | 
						__pkvm_destroy_hyp_vm(host_kvm);
 | 
				
			||||||
					  host_kvm->arch.pkvm.handle));
 | 
						mutex_unlock(&host_kvm->arch.config_lock);
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	host_kvm->arch.pkvm.handle = 0;
 | 
					 | 
				
			||||||
	free_hyp_memcache(&host_kvm->arch.pkvm.teardown_mc);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int pkvm_init_host_vm(struct kvm *host_kvm)
 | 
					int pkvm_init_host_vm(struct kvm *host_kvm)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,7 @@
 | 
				
			||||||
static __always_inline bool arch_static_branch(struct static_key *key,
 | 
					static __always_inline bool arch_static_branch(struct static_key *key,
 | 
				
			||||||
					       bool branch)
 | 
										       bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto(
 | 
						asm goto(
 | 
				
			||||||
		"1:	nop32					\n"
 | 
							"1:	nop32					\n"
 | 
				
			||||||
		"	.pushsection	__jump_table, \"aw\"	\n"
 | 
							"	.pushsection	__jump_table, \"aw\"	\n"
 | 
				
			||||||
		"	.align		2			\n"
 | 
							"	.align		2			\n"
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@ static __always_inline bool arch_static_branch(struct static_key *key,
 | 
				
			||||||
static __always_inline bool arch_static_branch_jump(struct static_key *key,
 | 
					static __always_inline bool arch_static_branch_jump(struct static_key *key,
 | 
				
			||||||
						    bool branch)
 | 
											    bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto(
 | 
						asm goto(
 | 
				
			||||||
		"1:	bsr32		%l[label]		\n"
 | 
							"1:	bsr32		%l[label]		\n"
 | 
				
			||||||
		"	.pushsection	__jump_table, \"aw\"	\n"
 | 
							"	.pushsection	__jump_table, \"aw\"	\n"
 | 
				
			||||||
		"	.align		2			\n"
 | 
							"	.align		2			\n"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,6 +12,7 @@ config LOONGARCH
 | 
				
			||||||
	select ARCH_DISABLE_KASAN_INLINE
 | 
						select ARCH_DISABLE_KASAN_INLINE
 | 
				
			||||||
	select ARCH_ENABLE_MEMORY_HOTPLUG
 | 
						select ARCH_ENABLE_MEMORY_HOTPLUG
 | 
				
			||||||
	select ARCH_ENABLE_MEMORY_HOTREMOVE
 | 
						select ARCH_ENABLE_MEMORY_HOTREMOVE
 | 
				
			||||||
 | 
						select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE
 | 
				
			||||||
	select ARCH_HAS_ACPI_TABLE_UPGRADE	if ACPI
 | 
						select ARCH_HAS_ACPI_TABLE_UPGRADE	if ACPI
 | 
				
			||||||
	select ARCH_HAS_CPU_FINALIZE_INIT
 | 
						select ARCH_HAS_CPU_FINALIZE_INIT
 | 
				
			||||||
	select ARCH_HAS_FORTIFY_SOURCE
 | 
						select ARCH_HAS_FORTIFY_SOURCE
 | 
				
			||||||
| 
						 | 
					@ -99,6 +100,7 @@ config LOONGARCH
 | 
				
			||||||
	select HAVE_ARCH_KFENCE
 | 
						select HAVE_ARCH_KFENCE
 | 
				
			||||||
	select HAVE_ARCH_KGDB if PERF_EVENTS
 | 
						select HAVE_ARCH_KGDB if PERF_EVENTS
 | 
				
			||||||
	select HAVE_ARCH_MMAP_RND_BITS if MMU
 | 
						select HAVE_ARCH_MMAP_RND_BITS if MMU
 | 
				
			||||||
 | 
						select HAVE_ARCH_SECCOMP
 | 
				
			||||||
	select HAVE_ARCH_SECCOMP_FILTER
 | 
						select HAVE_ARCH_SECCOMP_FILTER
 | 
				
			||||||
	select HAVE_ARCH_TRACEHOOK
 | 
						select HAVE_ARCH_TRACEHOOK
 | 
				
			||||||
	select HAVE_ARCH_TRANSPARENT_HUGEPAGE
 | 
						select HAVE_ARCH_TRANSPARENT_HUGEPAGE
 | 
				
			||||||
| 
						 | 
					@ -632,23 +634,6 @@ config RANDOMIZE_BASE_MAX_OFFSET
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	  This is limited by the size of the lower address memory, 256MB.
 | 
						  This is limited by the size of the lower address memory, 256MB.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config SECCOMP
 | 
					 | 
				
			||||||
	bool "Enable seccomp to safely compute untrusted bytecode"
 | 
					 | 
				
			||||||
	depends on PROC_FS
 | 
					 | 
				
			||||||
	default y
 | 
					 | 
				
			||||||
	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 /proc/<pid>/seccomp, it cannot be disabled
 | 
					 | 
				
			||||||
	  and the task is only allowed to execute a few safe syscalls
 | 
					 | 
				
			||||||
	  defined by each seccomp mode.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	  If unsure, say Y. Only embedded should say N here.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
endmenu
 | 
					endmenu
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config ARCH_SELECT_MEMORY_MODEL
 | 
					config ARCH_SELECT_MEMORY_MODEL
 | 
				
			||||||
| 
						 | 
					@ -667,10 +652,6 @@ config ARCH_SPARSEMEM_ENABLE
 | 
				
			||||||
	  or have huge holes in the physical address space for other reasons.
 | 
						  or have huge holes in the physical address space for other reasons.
 | 
				
			||||||
	  See <file:Documentation/mm/numa.rst> for more.
 | 
						  See <file:Documentation/mm/numa.rst> for more.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config ARCH_ENABLE_THP_MIGRATION
 | 
					 | 
				
			||||||
	def_bool y
 | 
					 | 
				
			||||||
	depends on TRANSPARENT_HUGEPAGE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
config ARCH_MEMORY_PROBE
 | 
					config ARCH_MEMORY_PROBE
 | 
				
			||||||
	def_bool y
 | 
						def_bool y
 | 
				
			||||||
	depends on MEMORY_HOTPLUG
 | 
						depends on MEMORY_HOTPLUG
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,8 +32,10 @@ static inline bool acpi_has_cpu_in_madt(void)
 | 
				
			||||||
	return true;
 | 
						return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MAX_CORE_PIC 256
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern struct list_head acpi_wakeup_device_list;
 | 
					extern struct list_head acpi_wakeup_device_list;
 | 
				
			||||||
extern struct acpi_madt_core_pic acpi_core_pic[NR_CPUS];
 | 
					extern struct acpi_madt_core_pic acpi_core_pic[MAX_CORE_PIC];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern int __init parse_acpi_topology(void);
 | 
					extern int __init parse_acpi_topology(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,7 +22,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static __always_inline bool arch_static_branch(struct static_key * const key, const bool branch)
 | 
					static __always_inline bool arch_static_branch(struct static_key * const key, const bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto(
 | 
						asm goto(
 | 
				
			||||||
		"1:	nop			\n\t"
 | 
							"1:	nop			\n\t"
 | 
				
			||||||
		JUMP_TABLE_ENTRY
 | 
							JUMP_TABLE_ENTRY
 | 
				
			||||||
		:  :  "i"(&((char *)key)[branch]) :  : l_yes);
 | 
							:  :  "i"(&((char *)key)[branch]) :  : l_yes);
 | 
				
			||||||
| 
						 | 
					@ -35,7 +35,7 @@ static __always_inline bool arch_static_branch(struct static_key * const key, co
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static __always_inline bool arch_static_branch_jump(struct static_key * const key, const bool branch)
 | 
					static __always_inline bool arch_static_branch_jump(struct static_key * const key, const bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto(
 | 
						asm goto(
 | 
				
			||||||
		"1:	b	%l[l_yes]	\n\t"
 | 
							"1:	b	%l[l_yes]	\n\t"
 | 
				
			||||||
		JUMP_TABLE_ENTRY
 | 
							JUMP_TABLE_ENTRY
 | 
				
			||||||
		:  :  "i"(&((char *)key)[branch]) :  : l_yes);
 | 
							:  :  "i"(&((char *)key)[branch]) :  : l_yes);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -29,11 +29,9 @@ int disabled_cpus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
u64 acpi_saved_sp;
 | 
					u64 acpi_saved_sp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define MAX_CORE_PIC 256
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define PREFIX			"ACPI: "
 | 
					#define PREFIX			"ACPI: "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct acpi_madt_core_pic acpi_core_pic[NR_CPUS];
 | 
					struct acpi_madt_core_pic acpi_core_pic[MAX_CORE_PIC];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void __init __iomem * __acpi_map_table(unsigned long phys, unsigned long size)
 | 
					void __init __iomem * __acpi_map_table(unsigned long phys, unsigned long size)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,6 +44,9 @@ void *kasan_mem_to_shadow(const void *addr)
 | 
				
			||||||
		unsigned long xrange = (maddr >> XRANGE_SHIFT) & 0xffff;
 | 
							unsigned long xrange = (maddr >> XRANGE_SHIFT) & 0xffff;
 | 
				
			||||||
		unsigned long offset = 0;
 | 
							unsigned long offset = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (maddr >= FIXADDR_START)
 | 
				
			||||||
 | 
								return (void *)(kasan_early_shadow_page);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		maddr &= XRANGE_SHADOW_MASK;
 | 
							maddr &= XRANGE_SHADOW_MASK;
 | 
				
			||||||
		switch (xrange) {
 | 
							switch (xrange) {
 | 
				
			||||||
		case XKPRANGE_CC_SEG:
 | 
							case XKPRANGE_CC_SEG:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2,6 +2,7 @@
 | 
				
			||||||
# Objects to go into the VDSO.
 | 
					# Objects to go into the VDSO.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
KASAN_SANITIZE := n
 | 
					KASAN_SANITIZE := n
 | 
				
			||||||
 | 
					UBSAN_SANITIZE := n
 | 
				
			||||||
KCOV_INSTRUMENT := n
 | 
					KCOV_INSTRUMENT := n
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Include the generic Makefile to check the built vdso.
 | 
					# Include the generic Makefile to check the built vdso.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,10 +15,10 @@
 | 
				
			||||||
KBUILD_DEFCONFIG := multi_defconfig
 | 
					KBUILD_DEFCONFIG := multi_defconfig
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifdef cross_compiling
 | 
					ifdef cross_compiling
 | 
				
			||||||
	ifeq ($(CROSS_COMPILE),)
 | 
					    ifeq ($(CROSS_COMPILE),)
 | 
				
			||||||
		CROSS_COMPILE := $(call cc-cross-prefix, \
 | 
							CROSS_COMPILE := $(call cc-cross-prefix, \
 | 
				
			||||||
			m68k-linux-gnu- m68k-linux- m68k-unknown-linux-gnu-)
 | 
								m68k-linux-gnu- m68k-linux- m68k-unknown-linux-gnu-)
 | 
				
			||||||
	endif
 | 
					    endif
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -241,7 +241,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
 | 
				
			||||||
	"	.set	pop"
 | 
						"	.set	pop"
 | 
				
			||||||
	: "=&r" (sum), "=&r" (tmp)
 | 
						: "=&r" (sum), "=&r" (tmp)
 | 
				
			||||||
	: "r" (saddr), "r" (daddr),
 | 
						: "r" (saddr), "r" (daddr),
 | 
				
			||||||
	  "0" (htonl(len)), "r" (htonl(proto)), "r" (sum));
 | 
						  "0" (htonl(len)), "r" (htonl(proto)), "r" (sum)
 | 
				
			||||||
 | 
						: "memory");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return csum_fold(sum);
 | 
						return csum_fold(sum);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -39,7 +39,7 @@ extern void jump_label_apply_nops(struct module *mod);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 | 
					static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto("1:\t" B_INSN " 2f\n\t"
 | 
						asm goto("1:\t" B_INSN " 2f\n\t"
 | 
				
			||||||
		"2:\t.insn\n\t"
 | 
							"2:\t.insn\n\t"
 | 
				
			||||||
		".pushsection __jump_table,  \"aw\"\n\t"
 | 
							".pushsection __jump_table,  \"aw\"\n\t"
 | 
				
			||||||
		WORD_INSN " 1b, %l[l_yes], %0\n\t"
 | 
							WORD_INSN " 1b, %l[l_yes], %0\n\t"
 | 
				
			||||||
| 
						 | 
					@ -53,7 +53,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 | 
					static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto("1:\t" J_INSN " %l[l_yes]\n\t"
 | 
						asm goto("1:\t" J_INSN " %l[l_yes]\n\t"
 | 
				
			||||||
		".pushsection __jump_table,  \"aw\"\n\t"
 | 
							".pushsection __jump_table,  \"aw\"\n\t"
 | 
				
			||||||
		WORD_INSN " 1b, %l[l_yes], %0\n\t"
 | 
							WORD_INSN " 1b, %l[l_yes], %0\n\t"
 | 
				
			||||||
		".popsection\n\t"
 | 
							".popsection\n\t"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,6 +60,7 @@ static inline void instruction_pointer_set(struct pt_regs *regs,
 | 
				
			||||||
                                           unsigned long val)
 | 
					                                           unsigned long val)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	regs->cp0_epc = val;
 | 
						regs->cp0_epc = val;
 | 
				
			||||||
 | 
						regs->cp0_cause &= ~CAUSEF_BD;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Query offset/name of register from its name/offset */
 | 
					/* Query offset/name of register from its name/offset */
 | 
				
			||||||
| 
						 | 
					@ -154,6 +155,8 @@ static inline long regs_return_value(struct pt_regs *regs)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define instruction_pointer(regs) ((regs)->cp0_epc)
 | 
					#define instruction_pointer(regs) ((regs)->cp0_epc)
 | 
				
			||||||
 | 
					extern unsigned long exception_ip(struct pt_regs *regs);
 | 
				
			||||||
 | 
					#define exception_ip(regs) exception_ip(regs)
 | 
				
			||||||
#define profile_pc(regs) instruction_pointer(regs)
 | 
					#define profile_pc(regs) instruction_pointer(regs)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern asmlinkage long syscall_trace_enter(struct pt_regs *regs, long syscall);
 | 
					extern asmlinkage long syscall_trace_enter(struct pt_regs *regs, long syscall);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@
 | 
				
			||||||
#include <linux/seccomp.h>
 | 
					#include <linux/seccomp.h>
 | 
				
			||||||
#include <linux/ftrace.h>
 | 
					#include <linux/ftrace.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <asm/branch.h>
 | 
				
			||||||
#include <asm/byteorder.h>
 | 
					#include <asm/byteorder.h>
 | 
				
			||||||
#include <asm/cpu.h>
 | 
					#include <asm/cpu.h>
 | 
				
			||||||
#include <asm/cpu-info.h>
 | 
					#include <asm/cpu-info.h>
 | 
				
			||||||
| 
						 | 
					@ -48,6 +49,12 @@
 | 
				
			||||||
#define CREATE_TRACE_POINTS
 | 
					#define CREATE_TRACE_POINTS
 | 
				
			||||||
#include <trace/events/syscalls.h>
 | 
					#include <trace/events/syscalls.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					unsigned long exception_ip(struct pt_regs *regs)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return exception_epc(regs);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					EXPORT_SYMBOL(exception_ip);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Called by kernel/ptrace.c when detaching..
 | 
					 * Called by kernel/ptrace.c when detaching..
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,7 +25,6 @@ config PARISC
 | 
				
			||||||
	select RTC_DRV_GENERIC
 | 
						select RTC_DRV_GENERIC
 | 
				
			||||||
	select INIT_ALL_POSSIBLE
 | 
						select INIT_ALL_POSSIBLE
 | 
				
			||||||
	select BUG
 | 
						select BUG
 | 
				
			||||||
	select BUILDTIME_TABLE_SORT
 | 
					 | 
				
			||||||
	select HAVE_KERNEL_UNCOMPRESSED
 | 
						select HAVE_KERNEL_UNCOMPRESSED
 | 
				
			||||||
	select HAVE_PCI
 | 
						select HAVE_PCI
 | 
				
			||||||
	select HAVE_PERF_EVENTS
 | 
						select HAVE_PERF_EVENTS
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,12 +50,12 @@ export CROSS32CC
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set default cross compiler for kernel build
 | 
					# Set default cross compiler for kernel build
 | 
				
			||||||
ifdef cross_compiling
 | 
					ifdef cross_compiling
 | 
				
			||||||
	ifeq ($(CROSS_COMPILE),)
 | 
					    ifeq ($(CROSS_COMPILE),)
 | 
				
			||||||
		CC_SUFFIXES = linux linux-gnu unknown-linux-gnu suse-linux
 | 
							CC_SUFFIXES = linux linux-gnu unknown-linux-gnu suse-linux
 | 
				
			||||||
		CROSS_COMPILE := $(call cc-cross-prefix, \
 | 
							CROSS_COMPILE := $(call cc-cross-prefix, \
 | 
				
			||||||
			$(foreach a,$(CC_ARCHES), \
 | 
								$(foreach a,$(CC_ARCHES), \
 | 
				
			||||||
			$(foreach s,$(CC_SUFFIXES),$(a)-$(s)-)))
 | 
								$(foreach s,$(CC_SUFFIXES),$(a)-$(s)-)))
 | 
				
			||||||
	endif
 | 
					    endif
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ifdef CONFIG_DYNAMIC_FTRACE
 | 
					ifdef CONFIG_DYNAMIC_FTRACE
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -576,6 +576,7 @@
 | 
				
			||||||
	.section __ex_table,"aw"			!	\
 | 
						.section __ex_table,"aw"			!	\
 | 
				
			||||||
	.align 4					!	\
 | 
						.align 4					!	\
 | 
				
			||||||
	.word (fault_addr - .), (except_addr - .)	!	\
 | 
						.word (fault_addr - .), (except_addr - .)	!	\
 | 
				
			||||||
 | 
						or %r0,%r0,%r0					!	\
 | 
				
			||||||
	.previous
 | 
						.previous
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										64
									
								
								arch/parisc/include/asm/extable.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								arch/parisc/include/asm/extable.h
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,64 @@
 | 
				
			||||||
 | 
					/* SPDX-License-Identifier: GPL-2.0 */
 | 
				
			||||||
 | 
					#ifndef __PARISC_EXTABLE_H
 | 
				
			||||||
 | 
					#define __PARISC_EXTABLE_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <asm/ptrace.h>
 | 
				
			||||||
 | 
					#include <linux/compiler.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * The exception table consists of three addresses:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * - A relative address to the instruction that is allowed to fault.
 | 
				
			||||||
 | 
					 * - A relative address at which the program should continue (fixup routine)
 | 
				
			||||||
 | 
					 * - An asm statement which specifies which CPU register will
 | 
				
			||||||
 | 
					 *   receive -EFAULT when an exception happens if the lowest bit in
 | 
				
			||||||
 | 
					 *   the fixup address is set.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Note: The register specified in the err_opcode instruction will be
 | 
				
			||||||
 | 
					 * modified at runtime if a fault happens. Register %r0 will be ignored.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Since relative addresses are used, 32bit values are sufficient even on
 | 
				
			||||||
 | 
					 * 64bit kernel.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct pt_regs;
 | 
				
			||||||
 | 
					int fixup_exception(struct pt_regs *regs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ARCH_HAS_RELATIVE_EXTABLE
 | 
				
			||||||
 | 
					struct exception_table_entry {
 | 
				
			||||||
 | 
						int insn;	/* relative address of insn that is allowed to fault. */
 | 
				
			||||||
 | 
						int fixup;	/* relative address of fixup routine */
 | 
				
			||||||
 | 
						int err_opcode; /* sample opcode with register which holds error code */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ASM_EXCEPTIONTABLE_ENTRY( fault_addr, except_addr, opcode )\
 | 
				
			||||||
 | 
						".section __ex_table,\"aw\"\n"			   \
 | 
				
			||||||
 | 
						".align 4\n"					   \
 | 
				
			||||||
 | 
						".word (" #fault_addr " - .), (" #except_addr " - .)\n" \
 | 
				
			||||||
 | 
						opcode "\n"					   \
 | 
				
			||||||
 | 
						".previous\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * ASM_EXCEPTIONTABLE_ENTRY_EFAULT() creates a special exception table entry
 | 
				
			||||||
 | 
					 * (with lowest bit set) for which the fault handler in fixup_exception() will
 | 
				
			||||||
 | 
					 * load -EFAULT on fault into the register specified by the err_opcode instruction,
 | 
				
			||||||
 | 
					 * and zeroes the target register in case of a read fault in get_user().
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define ASM_EXCEPTIONTABLE_VAR(__err_var)		\
 | 
				
			||||||
 | 
						int __err_var = 0
 | 
				
			||||||
 | 
					#define ASM_EXCEPTIONTABLE_ENTRY_EFAULT( fault_addr, except_addr, register )\
 | 
				
			||||||
 | 
						ASM_EXCEPTIONTABLE_ENTRY( fault_addr, except_addr + 1, "or %%r0,%%r0," register)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline void swap_ex_entry_fixup(struct exception_table_entry *a,
 | 
				
			||||||
 | 
									       struct exception_table_entry *b,
 | 
				
			||||||
 | 
									       struct exception_table_entry tmp,
 | 
				
			||||||
 | 
									       int delta)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						a->fixup = b->fixup + delta;
 | 
				
			||||||
 | 
						b->fixup = tmp.fixup - delta;
 | 
				
			||||||
 | 
						a->err_opcode = b->err_opcode;
 | 
				
			||||||
 | 
						b->err_opcode = tmp.err_opcode;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#define swap_ex_entry_fixup swap_ex_entry_fixup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 | 
					static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto("1:\n\t"
 | 
						asm goto("1:\n\t"
 | 
				
			||||||
		 "nop\n\t"
 | 
							 "nop\n\t"
 | 
				
			||||||
		 ".pushsection __jump_table,  \"aw\"\n\t"
 | 
							 ".pushsection __jump_table,  \"aw\"\n\t"
 | 
				
			||||||
		 ".align %1\n\t"
 | 
							 ".align %1\n\t"
 | 
				
			||||||
| 
						 | 
					@ -29,7 +29,7 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 | 
					static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	asm_volatile_goto("1:\n\t"
 | 
						asm goto("1:\n\t"
 | 
				
			||||||
		 "b,n %l[l_yes]\n\t"
 | 
							 "b,n %l[l_yes]\n\t"
 | 
				
			||||||
		 ".pushsection __jump_table,  \"aw\"\n\t"
 | 
							 ".pushsection __jump_table,  \"aw\"\n\t"
 | 
				
			||||||
		 ".align %1\n\t"
 | 
							 ".align %1\n\t"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,8 @@
 | 
				
			||||||
		"copy %%r0,%0\n"			\
 | 
							"copy %%r0,%0\n"			\
 | 
				
			||||||
		"8:\tlpa %%r0(%1),%0\n"			\
 | 
							"8:\tlpa %%r0(%1),%0\n"			\
 | 
				
			||||||
		"9:\n"					\
 | 
							"9:\n"					\
 | 
				
			||||||
		ASM_EXCEPTIONTABLE_ENTRY(8b, 9b)	\
 | 
							ASM_EXCEPTIONTABLE_ENTRY(8b, 9b,	\
 | 
				
			||||||
 | 
									"or %%r0,%%r0,%%r0")	\
 | 
				
			||||||
		: "=&r" (pa)				\
 | 
							: "=&r" (pa)				\
 | 
				
			||||||
		: "r" (va)				\
 | 
							: "r" (va)				\
 | 
				
			||||||
		: "memory"				\
 | 
							: "memory"				\
 | 
				
			||||||
| 
						 | 
					@ -22,7 +23,8 @@
 | 
				
			||||||
		"copy %%r0,%0\n"			\
 | 
							"copy %%r0,%0\n"			\
 | 
				
			||||||
		"8:\tlpa %%r0(%%sr3,%1),%0\n"		\
 | 
							"8:\tlpa %%r0(%%sr3,%1),%0\n"		\
 | 
				
			||||||
		"9:\n"					\
 | 
							"9:\n"					\
 | 
				
			||||||
		ASM_EXCEPTIONTABLE_ENTRY(8b, 9b)	\
 | 
							ASM_EXCEPTIONTABLE_ENTRY(8b, 9b,	\
 | 
				
			||||||
 | 
									"or %%r0,%%r0,%%r0")	\
 | 
				
			||||||
		: "=&r" (pa)				\
 | 
							: "=&r" (pa)				\
 | 
				
			||||||
		: "r" (va)				\
 | 
							: "r" (va)				\
 | 
				
			||||||
		: "memory"				\
 | 
							: "memory"				\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7,6 +7,7 @@
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#include <asm/page.h>
 | 
					#include <asm/page.h>
 | 
				
			||||||
#include <asm/cache.h>
 | 
					#include <asm/cache.h>
 | 
				
			||||||
 | 
					#include <asm/extable.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <linux/bug.h>
 | 
					#include <linux/bug.h>
 | 
				
			||||||
#include <linux/string.h>
 | 
					#include <linux/string.h>
 | 
				
			||||||
| 
						 | 
					@ -26,37 +27,6 @@
 | 
				
			||||||
#define STD_USER(sr, x, ptr)	__put_user_asm(sr, "std", x, ptr)
 | 
					#define STD_USER(sr, x, ptr)	__put_user_asm(sr, "std", x, ptr)
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * The exception table contains two values: the first is the relative offset to
 | 
					 | 
				
			||||||
 * the address of the instruction that is allowed to fault, and the second is
 | 
					 | 
				
			||||||
 * the relative offset to the address of the fixup routine. Since relative
 | 
					 | 
				
			||||||
 * addresses are used, 32bit values are sufficient even on 64bit kernel.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define ARCH_HAS_RELATIVE_EXTABLE
 | 
					 | 
				
			||||||
struct exception_table_entry {
 | 
					 | 
				
			||||||
	int insn;	/* relative address of insn that is allowed to fault. */
 | 
					 | 
				
			||||||
	int fixup;	/* relative address of fixup routine */
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define ASM_EXCEPTIONTABLE_ENTRY( fault_addr, except_addr )\
 | 
					 | 
				
			||||||
	".section __ex_table,\"aw\"\n"			   \
 | 
					 | 
				
			||||||
	".align 4\n"					   \
 | 
					 | 
				
			||||||
	".word (" #fault_addr " - .), (" #except_addr " - .)\n\t" \
 | 
					 | 
				
			||||||
	".previous\n"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * ASM_EXCEPTIONTABLE_ENTRY_EFAULT() creates a special exception table entry
 | 
					 | 
				
			||||||
 * (with lowest bit set) for which the fault handler in fixup_exception() will
 | 
					 | 
				
			||||||
 * load -EFAULT into %r29 for a read or write fault, and zeroes the target
 | 
					 | 
				
			||||||
 * register in case of a read fault in get_user().
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
#define ASM_EXCEPTIONTABLE_REG	29
 | 
					 | 
				
			||||||
#define ASM_EXCEPTIONTABLE_VAR(__variable)		\
 | 
					 | 
				
			||||||
	register long __variable __asm__ ("r29") = 0
 | 
					 | 
				
			||||||
#define ASM_EXCEPTIONTABLE_ENTRY_EFAULT( fault_addr, except_addr )\
 | 
					 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY( fault_addr, except_addr + 1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define __get_user_internal(sr, val, ptr)		\
 | 
					#define __get_user_internal(sr, val, ptr)		\
 | 
				
			||||||
({							\
 | 
					({							\
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_VAR(__gu_err);		\
 | 
						ASM_EXCEPTIONTABLE_VAR(__gu_err);		\
 | 
				
			||||||
| 
						 | 
					@ -83,7 +53,7 @@ struct exception_table_entry {
 | 
				
			||||||
							\
 | 
												\
 | 
				
			||||||
	__asm__("1: " ldx " 0(%%sr%2,%3),%0\n"		\
 | 
						__asm__("1: " ldx " 0(%%sr%2,%3),%0\n"		\
 | 
				
			||||||
		"9:\n"					\
 | 
							"9:\n"					\
 | 
				
			||||||
		ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 9b)	\
 | 
							ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 9b, "%1")	\
 | 
				
			||||||
		: "=r"(__gu_val), "+r"(__gu_err)        \
 | 
							: "=r"(__gu_val), "+r"(__gu_err)        \
 | 
				
			||||||
		: "i"(sr), "r"(ptr));			\
 | 
							: "i"(sr), "r"(ptr));			\
 | 
				
			||||||
							\
 | 
												\
 | 
				
			||||||
| 
						 | 
					@ -115,8 +85,8 @@ struct exception_table_entry {
 | 
				
			||||||
		"1: ldw 0(%%sr%2,%3),%0\n"		\
 | 
							"1: ldw 0(%%sr%2,%3),%0\n"		\
 | 
				
			||||||
		"2: ldw 4(%%sr%2,%3),%R0\n"		\
 | 
							"2: ldw 4(%%sr%2,%3),%R0\n"		\
 | 
				
			||||||
		"9:\n"					\
 | 
							"9:\n"					\
 | 
				
			||||||
		ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 9b)	\
 | 
							ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 9b, "%1")	\
 | 
				
			||||||
		ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 9b)	\
 | 
							ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 9b, "%1")	\
 | 
				
			||||||
		: "=&r"(__gu_tmp.l), "+r"(__gu_err)	\
 | 
							: "=&r"(__gu_tmp.l), "+r"(__gu_err)	\
 | 
				
			||||||
		: "i"(sr), "r"(ptr));			\
 | 
							: "i"(sr), "r"(ptr));			\
 | 
				
			||||||
							\
 | 
												\
 | 
				
			||||||
| 
						 | 
					@ -174,7 +144,7 @@ struct exception_table_entry {
 | 
				
			||||||
	__asm__ __volatile__ (					\
 | 
						__asm__ __volatile__ (					\
 | 
				
			||||||
		"1: " stx " %1,0(%%sr%2,%3)\n"			\
 | 
							"1: " stx " %1,0(%%sr%2,%3)\n"			\
 | 
				
			||||||
		"9:\n"						\
 | 
							"9:\n"						\
 | 
				
			||||||
		ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 9b)		\
 | 
							ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 9b, "%0")	\
 | 
				
			||||||
		: "+r"(__pu_err)				\
 | 
							: "+r"(__pu_err)				\
 | 
				
			||||||
		: "r"(x), "i"(sr), "r"(ptr))
 | 
							: "r"(x), "i"(sr), "r"(ptr))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -186,15 +156,14 @@ struct exception_table_entry {
 | 
				
			||||||
		"1: stw %1,0(%%sr%2,%3)\n"			\
 | 
							"1: stw %1,0(%%sr%2,%3)\n"			\
 | 
				
			||||||
		"2: stw %R1,4(%%sr%2,%3)\n"			\
 | 
							"2: stw %R1,4(%%sr%2,%3)\n"			\
 | 
				
			||||||
		"9:\n"						\
 | 
							"9:\n"						\
 | 
				
			||||||
		ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 9b)		\
 | 
							ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 9b, "%0")	\
 | 
				
			||||||
		ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 9b)		\
 | 
							ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 9b, "%0")	\
 | 
				
			||||||
		: "+r"(__pu_err)				\
 | 
							: "+r"(__pu_err)				\
 | 
				
			||||||
		: "r"(__val), "i"(sr), "r"(ptr));		\
 | 
							: "r"(__val), "i"(sr), "r"(ptr));		\
 | 
				
			||||||
} while (0)
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif /* !defined(CONFIG_64BIT) */
 | 
					#endif /* !defined(CONFIG_64BIT) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Complex access routines -- external declarations
 | 
					 * Complex access routines -- external declarations
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
| 
						 | 
					@ -216,7 +185,4 @@ unsigned long __must_check raw_copy_from_user(void *dst, const void __user *src,
 | 
				
			||||||
#define INLINE_COPY_TO_USER
 | 
					#define INLINE_COPY_TO_USER
 | 
				
			||||||
#define INLINE_COPY_FROM_USER
 | 
					#define INLINE_COPY_FROM_USER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct pt_regs;
 | 
					 | 
				
			||||||
int fixup_exception(struct pt_regs *regs);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#endif /* __PARISC_UACCESS_H */
 | 
					#endif /* __PARISC_UACCESS_H */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -58,7 +58,7 @@ int pa_serialize_tlb_flushes __ro_after_init;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct pdc_cache_info cache_info __ro_after_init;
 | 
					struct pdc_cache_info cache_info __ro_after_init;
 | 
				
			||||||
#ifndef CONFIG_PA20
 | 
					#ifndef CONFIG_PA20
 | 
				
			||||||
struct pdc_btlb_info btlb_info __ro_after_init;
 | 
					struct pdc_btlb_info btlb_info;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DEFINE_STATIC_KEY_TRUE(parisc_has_cache);
 | 
					DEFINE_STATIC_KEY_TRUE(parisc_has_cache);
 | 
				
			||||||
| 
						 | 
					@ -264,6 +264,10 @@ parisc_cache_init(void)
 | 
				
			||||||
	icache_stride = CAFL_STRIDE(cache_info.ic_conf);
 | 
						icache_stride = CAFL_STRIDE(cache_info.ic_conf);
 | 
				
			||||||
#undef CAFL_STRIDE
 | 
					#undef CAFL_STRIDE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* stride needs to be non-zero, otherwise cache flushes will not work */
 | 
				
			||||||
 | 
						WARN_ON(cache_info.dc_size && dcache_stride == 0);
 | 
				
			||||||
 | 
						WARN_ON(cache_info.ic_size && icache_stride == 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((boot_cpu_data.pdc.capabilities & PDC_MODEL_NVA_MASK) ==
 | 
						if ((boot_cpu_data.pdc.capabilities & PDC_MODEL_NVA_MASK) ==
 | 
				
			||||||
						PDC_MODEL_NVA_UNSUPPORTED) {
 | 
											PDC_MODEL_NVA_UNSUPPORTED) {
 | 
				
			||||||
		printk(KERN_WARNING "parisc_cache_init: Only equivalent aliasing supported!\n");
 | 
							printk(KERN_WARNING "parisc_cache_init: Only equivalent aliasing supported!\n");
 | 
				
			||||||
| 
						 | 
					@ -850,7 +854,7 @@ SYSCALL_DEFINE3(cacheflush, unsigned long, addr, unsigned long, bytes,
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
			"   fic,m	%3(%4,%0)\n"
 | 
								"   fic,m	%3(%4,%0)\n"
 | 
				
			||||||
			"2: sync\n"
 | 
								"2: sync\n"
 | 
				
			||||||
			ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 2b)
 | 
								ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 2b, "%1")
 | 
				
			||||||
			: "+r" (start), "+r" (error)
 | 
								: "+r" (start), "+r" (error)
 | 
				
			||||||
			: "r" (end), "r" (dcache_stride), "i" (SR_USER));
 | 
								: "r" (end), "r" (dcache_stride), "i" (SR_USER));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -865,7 +869,7 @@ SYSCALL_DEFINE3(cacheflush, unsigned long, addr, unsigned long, bytes,
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
			"   fdc,m	%3(%4,%0)\n"
 | 
								"   fdc,m	%3(%4,%0)\n"
 | 
				
			||||||
			"2: sync\n"
 | 
								"2: sync\n"
 | 
				
			||||||
			ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 2b)
 | 
								ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 2b, "%1")
 | 
				
			||||||
			: "+r" (start), "+r" (error)
 | 
								: "+r" (start), "+r" (error)
 | 
				
			||||||
			: "r" (end), "r" (icache_stride), "i" (SR_USER));
 | 
								: "r" (end), "r" (icache_stride), "i" (SR_USER));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -742,7 +742,7 @@ parse_tree_node(struct device *parent, int index, struct hardware_path *modpath)
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (device_for_each_child(parent, &recurse_data, descend_children))
 | 
						if (device_for_each_child(parent, &recurse_data, descend_children))
 | 
				
			||||||
		{ /* nothing */ };
 | 
							{ /* nothing */ }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return d.dev;
 | 
						return d.dev;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1004,6 +1004,9 @@ static __init int qemu_print_iodc_data(struct device *lin_dev, void *data)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pr_info("\n");
 | 
						pr_info("\n");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/* Prevent hung task messages when printing on serial console */
 | 
				
			||||||
 | 
						cond_resched();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	pr_info("#define HPA_%08lx_DESCRIPTION \"%s\"\n",
 | 
						pr_info("#define HPA_%08lx_DESCRIPTION \"%s\"\n",
 | 
				
			||||||
		hpa, parisc_hardware_description(&dev->id));
 | 
							hpa, parisc_hardware_description(&dev->id));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -120,8 +120,8 @@ static int emulate_ldh(struct pt_regs *regs, int toreg)
 | 
				
			||||||
"2:	ldbs	1(%%sr1,%3), %0\n"
 | 
					"2:	ldbs	1(%%sr1,%3), %0\n"
 | 
				
			||||||
"	depw	%2, 23, 24, %0\n"
 | 
					"	depw	%2, 23, 24, %0\n"
 | 
				
			||||||
"3:	\n"
 | 
					"3:	\n"
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 3b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 3b, "%1")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 3b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 3b, "%1")
 | 
				
			||||||
	: "+r" (val), "+r" (ret), "=&r" (temp1)
 | 
						: "+r" (val), "+r" (ret), "=&r" (temp1)
 | 
				
			||||||
	: "r" (saddr), "r" (regs->isr) );
 | 
						: "r" (saddr), "r" (regs->isr) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -152,8 +152,8 @@ static int emulate_ldw(struct pt_regs *regs, int toreg, int flop)
 | 
				
			||||||
"	mtctl	%2,11\n"
 | 
					"	mtctl	%2,11\n"
 | 
				
			||||||
"	vshd	%0,%3,%0\n"
 | 
					"	vshd	%0,%3,%0\n"
 | 
				
			||||||
"3:	\n"
 | 
					"3:	\n"
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 3b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 3b, "%1")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 3b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 3b, "%1")
 | 
				
			||||||
	: "+r" (val), "+r" (ret), "=&r" (temp1), "=&r" (temp2)
 | 
						: "+r" (val), "+r" (ret), "=&r" (temp1), "=&r" (temp2)
 | 
				
			||||||
	: "r" (saddr), "r" (regs->isr) );
 | 
						: "r" (saddr), "r" (regs->isr) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -189,8 +189,8 @@ static int emulate_ldd(struct pt_regs *regs, int toreg, int flop)
 | 
				
			||||||
"	mtsar	%%r19\n"
 | 
					"	mtsar	%%r19\n"
 | 
				
			||||||
"	shrpd	%0,%%r20,%%sar,%0\n"
 | 
					"	shrpd	%0,%%r20,%%sar,%0\n"
 | 
				
			||||||
"3:	\n"
 | 
					"3:	\n"
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 3b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 3b, "%1")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 3b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 3b, "%1")
 | 
				
			||||||
	: "=r" (val), "+r" (ret)
 | 
						: "=r" (val), "+r" (ret)
 | 
				
			||||||
	: "0" (val), "r" (saddr), "r" (regs->isr)
 | 
						: "0" (val), "r" (saddr), "r" (regs->isr)
 | 
				
			||||||
	: "r19", "r20" );
 | 
						: "r19", "r20" );
 | 
				
			||||||
| 
						 | 
					@ -209,9 +209,9 @@ static int emulate_ldd(struct pt_regs *regs, int toreg, int flop)
 | 
				
			||||||
"	vshd	%0,%R0,%0\n"
 | 
					"	vshd	%0,%R0,%0\n"
 | 
				
			||||||
"	vshd	%R0,%4,%R0\n"
 | 
					"	vshd	%R0,%4,%R0\n"
 | 
				
			||||||
"4:	\n"
 | 
					"4:	\n"
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 4b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 4b, "%1")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 4b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 4b, "%1")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(3b, 4b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(3b, 4b, "%1")
 | 
				
			||||||
	: "+r" (val), "+r" (ret), "+r" (saddr), "=&r" (shift), "=&r" (temp1)
 | 
						: "+r" (val), "+r" (ret), "+r" (saddr), "=&r" (shift), "=&r" (temp1)
 | 
				
			||||||
	: "r" (regs->isr) );
 | 
						: "r" (regs->isr) );
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -244,8 +244,8 @@ static int emulate_sth(struct pt_regs *regs, int frreg)
 | 
				
			||||||
"1:	stb %1, 0(%%sr1, %3)\n"
 | 
					"1:	stb %1, 0(%%sr1, %3)\n"
 | 
				
			||||||
"2:	stb %2, 1(%%sr1, %3)\n"
 | 
					"2:	stb %2, 1(%%sr1, %3)\n"
 | 
				
			||||||
"3:	\n"
 | 
					"3:	\n"
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 3b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 3b, "%0")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 3b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 3b, "%0")
 | 
				
			||||||
	: "+r" (ret), "=&r" (temp1)
 | 
						: "+r" (ret), "=&r" (temp1)
 | 
				
			||||||
	: "r" (val), "r" (regs->ior), "r" (regs->isr) );
 | 
						: "r" (val), "r" (regs->ior), "r" (regs->isr) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -285,8 +285,8 @@ static int emulate_stw(struct pt_regs *regs, int frreg, int flop)
 | 
				
			||||||
"	stw	%%r20,0(%%sr1,%2)\n"
 | 
					"	stw	%%r20,0(%%sr1,%2)\n"
 | 
				
			||||||
"	stw	%%r21,4(%%sr1,%2)\n"
 | 
					"	stw	%%r21,4(%%sr1,%2)\n"
 | 
				
			||||||
"3:	\n"
 | 
					"3:	\n"
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 3b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 3b, "%0")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 3b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 3b, "%0")
 | 
				
			||||||
	: "+r" (ret)
 | 
						: "+r" (ret)
 | 
				
			||||||
	: "r" (val), "r" (regs->ior), "r" (regs->isr)
 | 
						: "r" (val), "r" (regs->ior), "r" (regs->isr)
 | 
				
			||||||
	: "r19", "r20", "r21", "r22", "r1" );
 | 
						: "r19", "r20", "r21", "r22", "r1" );
 | 
				
			||||||
| 
						 | 
					@ -329,10 +329,10 @@ static int emulate_std(struct pt_regs *regs, int frreg, int flop)
 | 
				
			||||||
"3:	std	%%r20,0(%%sr1,%2)\n"
 | 
					"3:	std	%%r20,0(%%sr1,%2)\n"
 | 
				
			||||||
"4:	std	%%r21,8(%%sr1,%2)\n"
 | 
					"4:	std	%%r21,8(%%sr1,%2)\n"
 | 
				
			||||||
"5:	\n"
 | 
					"5:	\n"
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 5b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 5b, "%0")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 5b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 5b, "%0")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(3b, 5b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(3b, 5b, "%0")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(4b, 5b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(4b, 5b, "%0")
 | 
				
			||||||
	: "+r" (ret)
 | 
						: "+r" (ret)
 | 
				
			||||||
	: "r" (val), "r" (regs->ior), "r" (regs->isr)
 | 
						: "r" (val), "r" (regs->ior), "r" (regs->isr)
 | 
				
			||||||
	: "r19", "r20", "r21", "r22", "r1" );
 | 
						: "r19", "r20", "r21", "r22", "r1" );
 | 
				
			||||||
| 
						 | 
					@ -357,11 +357,11 @@ static int emulate_std(struct pt_regs *regs, int frreg, int flop)
 | 
				
			||||||
"4:	stw	%%r1,4(%%sr1,%2)\n"
 | 
					"4:	stw	%%r1,4(%%sr1,%2)\n"
 | 
				
			||||||
"5:	stw	%R1,8(%%sr1,%2)\n"
 | 
					"5:	stw	%R1,8(%%sr1,%2)\n"
 | 
				
			||||||
"6:	\n"
 | 
					"6:	\n"
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 6b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 6b, "%0")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 6b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 6b, "%0")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(3b, 6b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(3b, 6b, "%0")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(4b, 6b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(4b, 6b, "%0")
 | 
				
			||||||
	ASM_EXCEPTIONTABLE_ENTRY_EFAULT(5b, 6b)
 | 
						ASM_EXCEPTIONTABLE_ENTRY_EFAULT(5b, 6b, "%0")
 | 
				
			||||||
	: "+r" (ret)
 | 
						: "+r" (ret)
 | 
				
			||||||
	: "r" (val), "r" (regs->ior), "r" (regs->isr)
 | 
						: "r" (val), "r" (regs->ior), "r" (regs->isr)
 | 
				
			||||||
	: "r19", "r20", "r21", "r1" );
 | 
						: "r19", "r20", "r21", "r1" );
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
		Reference in a new issue