mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	Merge 6.7-rc5 into tty-next
We need the serial fixes in here as well to build off of. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
						commit
						e045e18dbf
					
				
					 905 changed files with 10440 additions and 7699 deletions
				
			
		
							
								
								
									
										1
									
								
								.mailmap
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								.mailmap
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -117,6 +117,7 @@ Changbin Du <changbin.du@intel.com> <changbin.du@gmail.com>
 | 
			
		|||
Changbin Du <changbin.du@intel.com> <changbin.du@intel.com>
 | 
			
		||||
Chao Yu <chao@kernel.org> <chao2.yu@samsung.com>
 | 
			
		||||
Chao Yu <chao@kernel.org> <yuchao0@huawei.com>
 | 
			
		||||
Chester Lin <chester62515@gmail.com> <clin@suse.com>
 | 
			
		||||
Chris Chiu <chris.chiu@canonical.com> <chiu@endlessm.com>
 | 
			
		||||
Chris Chiu <chris.chiu@canonical.com> <chiu@endlessos.org>
 | 
			
		||||
Chris Lew <quic_clew@quicinc.com> <clew@codeaurora.org>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										8
									
								
								CREDITS
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								CREDITS
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -2944,6 +2944,14 @@ D: IPX development and support
 | 
			
		|||
N: Venkatesh Pallipadi (Venki)
 | 
			
		||||
D: x86/HPET
 | 
			
		||||
 | 
			
		||||
N: Antti Palosaari
 | 
			
		||||
E: crope@iki.fi
 | 
			
		||||
D: Various DVB drivers
 | 
			
		||||
W: https://palosaari.fi/linux/
 | 
			
		||||
S: Yliopistokatu 1 D 513
 | 
			
		||||
S: FI-90570 Oulu
 | 
			
		||||
S: FINLAND
 | 
			
		||||
 | 
			
		||||
N: Kyungmin Park
 | 
			
		||||
E: kyungmin.park@samsung.com
 | 
			
		||||
D: Samsung S5Pv210 and Exynos4210 mobile platforms
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,3 +6,12 @@ Description:
 | 
			
		|||
		OP-TEE bus provides reference to registered drivers under this directory. The <uuid>
 | 
			
		||||
		matches Trusted Application (TA) driver and corresponding TA in secure OS. Drivers
 | 
			
		||||
		are free to create needed API under optee-ta-<uuid> directory.
 | 
			
		||||
 | 
			
		||||
What:		/sys/bus/tee/devices/optee-ta-<uuid>/need_supplicant
 | 
			
		||||
Date:		November 2023
 | 
			
		||||
KernelVersion:	6.7
 | 
			
		||||
Contact:	op-tee@lists.trustedfirmware.org
 | 
			
		||||
Description:
 | 
			
		||||
		Allows to distinguish whether an OP-TEE based TA/device requires user-space
 | 
			
		||||
		tee-supplicant to function properly or not. This attribute will be present for
 | 
			
		||||
		devices which depend on tee-supplicant to be running.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,15 +59,6 @@ Description:
 | 
			
		|||
		brightness. Reading this file when no hw brightness change
 | 
			
		||||
		event has happened will return an ENODATA error.
 | 
			
		||||
 | 
			
		||||
What:		/sys/class/leds/<led>/color
 | 
			
		||||
Date:		June 2023
 | 
			
		||||
KernelVersion:	6.5
 | 
			
		||||
Description:
 | 
			
		||||
		Color of the LED.
 | 
			
		||||
 | 
			
		||||
		This is a read-only file. Reading this file returns the color
 | 
			
		||||
		of the LED as a string (e.g: "red", "green", "multicolor").
 | 
			
		||||
 | 
			
		||||
What:		/sys/class/leds/<led>/trigger
 | 
			
		||||
Date:		March 2006
 | 
			
		||||
KernelVersion:	2.6.17
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -375,9 +375,9 @@ Developer web site of Loongson and LoongArch (Software and Documentation):
 | 
			
		|||
 | 
			
		||||
Documentation of LoongArch ISA:
 | 
			
		||||
 | 
			
		||||
  https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.02-CN.pdf (in Chinese)
 | 
			
		||||
  https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.10-CN.pdf (in Chinese)
 | 
			
		||||
 | 
			
		||||
  https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.02-EN.pdf (in English)
 | 
			
		||||
  https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.10-EN.pdf (in English)
 | 
			
		||||
 | 
			
		||||
Documentation of LoongArch ELF psABI:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,6 +9,9 @@ title: Analog Devices ADV7533/35 HDMI Encoders
 | 
			
		|||
maintainers:
 | 
			
		||||
  - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
 | 
			
		||||
 | 
			
		||||
allOf:
 | 
			
		||||
  - $ref: /schemas/sound/dai-common.yaml#
 | 
			
		||||
 | 
			
		||||
description: |
 | 
			
		||||
  The ADV7533 and ADV7535 are HDMI audio and video transmitters
 | 
			
		||||
  compatible with HDMI 1.4 and DVI 1.0. They support color space
 | 
			
		||||
| 
						 | 
				
			
			@ -89,6 +92,9 @@ properties:
 | 
			
		|||
    $ref: /schemas/types.yaml#/definitions/uint32
 | 
			
		||||
    enum: [ 1, 2, 3, 4 ]
 | 
			
		||||
 | 
			
		||||
  "#sound-dai-cells":
 | 
			
		||||
    const: 0
 | 
			
		||||
 | 
			
		||||
  ports:
 | 
			
		||||
    description:
 | 
			
		||||
      The ADV7533/35 has two video ports and one audio port.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,7 +51,10 @@ properties:
 | 
			
		|||
    minItems: 1
 | 
			
		||||
 | 
			
		||||
  interrupts:
 | 
			
		||||
    maxItems: 1
 | 
			
		||||
    items:
 | 
			
		||||
      - description: LCDIF DMA interrupt
 | 
			
		||||
      - description: LCDIF Error interrupt
 | 
			
		||||
    minItems: 1
 | 
			
		||||
 | 
			
		||||
  power-domains:
 | 
			
		||||
    maxItems: 1
 | 
			
		||||
| 
						 | 
				
			
			@ -131,6 +134,21 @@ allOf:
 | 
			
		|||
    then:
 | 
			
		||||
      required:
 | 
			
		||||
        - power-domains
 | 
			
		||||
  - if:
 | 
			
		||||
      properties:
 | 
			
		||||
        compatible:
 | 
			
		||||
          contains:
 | 
			
		||||
            enum:
 | 
			
		||||
              - fsl,imx23-lcdif
 | 
			
		||||
    then:
 | 
			
		||||
      properties:
 | 
			
		||||
        interrupts:
 | 
			
		||||
          minItems: 2
 | 
			
		||||
          maxItems: 2
 | 
			
		||||
    else:
 | 
			
		||||
      properties:
 | 
			
		||||
        interrupts:
 | 
			
		||||
          maxItems: 1
 | 
			
		||||
 | 
			
		||||
examples:
 | 
			
		||||
  - |
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,6 @@ maintainers:
 | 
			
		|||
  - Chun-Kuang Hu <chunkuang.hu@kernel.org>
 | 
			
		||||
  - Philipp Zabel <p.zabel@pengutronix.de>
 | 
			
		||||
  - Jitao Shi <jitao.shi@mediatek.com>
 | 
			
		||||
  - Xinlei Lee <xinlei.lee@mediatek.com>
 | 
			
		||||
 | 
			
		||||
description: |
 | 
			
		||||
  The MediaTek DSI function block is a sink of the display subsystem and can
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,6 +62,9 @@ properties:
 | 
			
		|||
        - description: MPM pin number
 | 
			
		||||
        - description: GIC SPI number for the MPM pin
 | 
			
		||||
 | 
			
		||||
  '#power-domain-cells':
 | 
			
		||||
    const: 0
 | 
			
		||||
 | 
			
		||||
required:
 | 
			
		||||
  - compatible
 | 
			
		||||
  - reg
 | 
			
		||||
| 
						 | 
				
			
			@ -93,4 +96,5 @@ examples:
 | 
			
		|||
                           <86 183>,
 | 
			
		||||
                           <90 260>,
 | 
			
		||||
                           <91 260>;
 | 
			
		||||
        #power-domain-cells = <0>;
 | 
			
		||||
    };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -90,7 +90,7 @@ properties:
 | 
			
		|||
            bitmap of all MHPMCOUNTERx that can monitor the range of events
 | 
			
		||||
 | 
			
		||||
dependencies:
 | 
			
		||||
  "riscv,event-to-mhpmevent": [ "riscv,event-to-mhpmcounters" ]
 | 
			
		||||
  riscv,event-to-mhpmevent: [ "riscv,event-to-mhpmcounters" ]
 | 
			
		||||
 | 
			
		||||
required:
 | 
			
		||||
  - compatible
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,7 @@ title: NXP S32G2 pin controller
 | 
			
		|||
 | 
			
		||||
maintainers:
 | 
			
		||||
  - Ghennadi Procopciuc <Ghennadi.Procopciuc@oss.nxp.com>
 | 
			
		||||
  - Chester Lin <clin@suse.com>
 | 
			
		||||
  - Chester Lin <chester62515@gmail.com>
 | 
			
		||||
 | 
			
		||||
description: |
 | 
			
		||||
  S32G2 pinmux is implemented in SIUL2 (System Integration Unit Lite2),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,12 +14,10 @@ allOf:
 | 
			
		|||
 | 
			
		||||
properties:
 | 
			
		||||
  "#pwm-cells":
 | 
			
		||||
    description: |
 | 
			
		||||
      Should be 2 for i.MX1 and 3 for i.MX27 and newer SoCs. See pwm.yaml
 | 
			
		||||
      in this directory for a description of the cells format.
 | 
			
		||||
    enum:
 | 
			
		||||
      - 2
 | 
			
		||||
      - 3
 | 
			
		||||
    description:
 | 
			
		||||
      The only third cell flag supported by this binding is
 | 
			
		||||
      PWM_POLARITY_INVERTED. fsl,imx1-pwm does not support this flags.
 | 
			
		||||
    const: 3
 | 
			
		||||
 | 
			
		||||
  compatible:
 | 
			
		||||
    oneOf:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -233,6 +233,7 @@ allOf:
 | 
			
		|||
              - rockchip,rk3399-grf
 | 
			
		||||
              - rockchip,rk3399-pmugrf
 | 
			
		||||
              - rockchip,rk3568-pmugrf
 | 
			
		||||
              - rockchip,rk3588-pmugrf
 | 
			
		||||
              - rockchip,rv1108-grf
 | 
			
		||||
              - rockchip,rv1108-pmugrf
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,7 +36,11 @@ properties:
 | 
			
		|||
 | 
			
		||||
  vdd-supply:
 | 
			
		||||
    description:
 | 
			
		||||
      VDD power supply to the hub
 | 
			
		||||
      3V3 power supply to the hub
 | 
			
		||||
 | 
			
		||||
  vdd2-supply:
 | 
			
		||||
    description:
 | 
			
		||||
      1V2 power supply to the hub
 | 
			
		||||
 | 
			
		||||
  peer-hub:
 | 
			
		||||
    $ref: /schemas/types.yaml#/definitions/phandle
 | 
			
		||||
| 
						 | 
				
			
			@ -62,6 +66,7 @@ allOf:
 | 
			
		|||
      properties:
 | 
			
		||||
        reset-gpios: false
 | 
			
		||||
        vdd-supply: false
 | 
			
		||||
        vdd2-supply: false
 | 
			
		||||
        peer-hub: false
 | 
			
		||||
        i2c-bus: false
 | 
			
		||||
    else:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -521,8 +521,8 @@ examples:
 | 
			
		|||
 | 
			
		||||
            interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
 | 
			
		||||
                         <GIC_SPI 486 IRQ_TYPE_LEVEL_HIGH>,
 | 
			
		||||
                         <GIC_SPI 488 IRQ_TYPE_LEVEL_HIGH>,
 | 
			
		||||
                         <GIC_SPI 489 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
                         <GIC_SPI 488 IRQ_TYPE_EDGE_BOTH>,
 | 
			
		||||
                         <GIC_SPI 489 IRQ_TYPE_EDGE_BOTH>;
 | 
			
		||||
            interrupt-names = "hs_phy_irq", "ss_phy_irq",
 | 
			
		||||
                          "dm_hs_phy_irq", "dp_hs_phy_irq";
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,7 +41,7 @@ examples:
 | 
			
		|||
  - |
 | 
			
		||||
    usb {
 | 
			
		||||
        phys = <&usb2_phy1>, <&usb3_phy1>;
 | 
			
		||||
        phy-names = "usb";
 | 
			
		||||
        phy-names = "usb2", "usb3";
 | 
			
		||||
        #address-cells = <1>;
 | 
			
		||||
        #size-cells = <0>;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -91,6 +91,10 @@ compatibility checking tool (fsck.erofs), and a debugging tool (dump.erofs):
 | 
			
		|||
 | 
			
		||||
- git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git
 | 
			
		||||
 | 
			
		||||
For more information, please also refer to the documentation site:
 | 
			
		||||
 | 
			
		||||
- https://erofs.docs.kernel.org
 | 
			
		||||
 | 
			
		||||
Bugs and patches are welcome, please kindly help us and send to the following
 | 
			
		||||
linux-erofs mailing list:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -99,7 +99,7 @@ also [6.1]::
 | 
			
		|||
   when it is no longer considered permitted.
 | 
			
		||||
 | 
			
		||||
Linux TCP-AO will try its best to prevent you from removing a key that's
 | 
			
		||||
being used, considering it a key management failure. But sine keeping
 | 
			
		||||
being used, considering it a key management failure. But since keeping
 | 
			
		||||
an outdated key may become a security issue and as a peer may
 | 
			
		||||
unintentionally prevent the removal of an old key by always setting
 | 
			
		||||
it as RNextKeyID - a forced key removal mechanism is provided, where
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -193,9 +193,23 @@ Review timelines
 | 
			
		|||
Generally speaking, the patches get triaged quickly (in less than
 | 
			
		||||
48h). But be patient, if your patch is active in patchwork (i.e. it's
 | 
			
		||||
listed on the project's patch list) the chances it was missed are close to zero.
 | 
			
		||||
Asking the maintainer for status updates on your
 | 
			
		||||
patch is a good way to ensure your patch is ignored or pushed to the
 | 
			
		||||
bottom of the priority list.
 | 
			
		||||
 | 
			
		||||
The high volume of development on netdev makes reviewers move on
 | 
			
		||||
from discussions relatively quickly. New comments and replies
 | 
			
		||||
are very unlikely to arrive after a week of silence. If a patch
 | 
			
		||||
is no longer active in patchwork and the thread went idle for more
 | 
			
		||||
than a week - clarify the next steps and/or post the next version.
 | 
			
		||||
 | 
			
		||||
For RFC postings specifically, if nobody responded in a week - reviewers
 | 
			
		||||
either missed the posting or have no strong opinions. If the code is ready,
 | 
			
		||||
repost as a PATCH.
 | 
			
		||||
 | 
			
		||||
Emails saying just "ping" or "bump" are considered rude. If you can't figure
 | 
			
		||||
out the status of the patch from patchwork or where the discussion has
 | 
			
		||||
landed - describe your best guess and ask if it's correct. For example::
 | 
			
		||||
 | 
			
		||||
  I don't understand what the next steps are. Person X seems to be unhappy
 | 
			
		||||
  with A, should I do B and repost the patches?
 | 
			
		||||
 | 
			
		||||
.. _Changes requested:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -130,7 +130,7 @@ Misc:
 | 
			
		|||
Device Tree Bindings
 | 
			
		||||
--------------------
 | 
			
		||||
 | 
			
		||||
See Documentation/devicetree/bindings/arm/arm,coresight-\*.yaml for details.
 | 
			
		||||
See ``Documentation/devicetree/bindings/arm/arm,coresight-*.yaml`` for details.
 | 
			
		||||
 | 
			
		||||
As of this writing drivers for ITM, STMs and CTIs are not provided but are
 | 
			
		||||
expected to be added as the solution matures.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -338,9 +338,9 @@ Loongson与LoongArch的开发者网站(软件与文档资源):
 | 
			
		|||
 | 
			
		||||
LoongArch指令集架构的文档:
 | 
			
		||||
 | 
			
		||||
  https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.02-CN.pdf (中文版)
 | 
			
		||||
  https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.10-CN.pdf (中文版)
 | 
			
		||||
 | 
			
		||||
  https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.02-EN.pdf (英文版)
 | 
			
		||||
  https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.10-EN.pdf (英文版)
 | 
			
		||||
 | 
			
		||||
LoongArch的ELF psABI文档:
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										210
									
								
								MAINTAINERS
									
									
									
									
									
								
							
							
						
						
									
										210
									
								
								MAINTAINERS
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -171,13 +171,10 @@ S:	Supported
 | 
			
		|||
F:	drivers/soc/fujitsu/a64fx-diag.c
 | 
			
		||||
 | 
			
		||||
A8293 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/dvb-frontends/a8293*
 | 
			
		||||
 | 
			
		||||
AACRAID SCSI RAID DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -576,23 +573,17 @@ F:	drivers/iio/accel/adxl372_i2c.c
 | 
			
		|||
F:	drivers/iio/accel/adxl372_spi.c
 | 
			
		||||
 | 
			
		||||
AF9013 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/dvb-frontends/af9013*
 | 
			
		||||
 | 
			
		||||
AF9033 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/dvb-frontends/af9033*
 | 
			
		||||
 | 
			
		||||
AFFS FILE SYSTEM
 | 
			
		||||
| 
						 | 
				
			
			@ -650,13 +641,10 @@ F:	fs/aio.c
 | 
			
		|||
F:	include/linux/*aio*.h
 | 
			
		||||
 | 
			
		||||
AIRSPY MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/usb/airspy/
 | 
			
		||||
 | 
			
		||||
ALACRITECH GIGABIT ETHERNET DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -2155,6 +2143,7 @@ S:	Maintained
 | 
			
		|||
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux.git
 | 
			
		||||
F:	arch/arm/boot/dts/nxp/imx/
 | 
			
		||||
F:	arch/arm/boot/dts/nxp/mxs/
 | 
			
		||||
F:	arch/arm64/boot/dts/freescale/
 | 
			
		||||
X:	arch/arm64/boot/dts/freescale/fsl-*
 | 
			
		||||
X:	arch/arm64/boot/dts/freescale/qoriq-*
 | 
			
		||||
X:	drivers/media/i2c/
 | 
			
		||||
| 
						 | 
				
			
			@ -2535,7 +2524,7 @@ F:	drivers/*/*/*wpcm*
 | 
			
		|||
F:	drivers/*/*wpcm*
 | 
			
		||||
 | 
			
		||||
ARM/NXP S32G ARCHITECTURE
 | 
			
		||||
M:	Chester Lin <clin@suse.com>
 | 
			
		||||
M:	Chester Lin <chester62515@gmail.com>
 | 
			
		||||
R:	Andreas Färber <afaerber@suse.de>
 | 
			
		||||
R:	Matthias Brugger <mbrugger@suse.com>
 | 
			
		||||
R:	NXP S32 Linux Team <s32@nxp.com>
 | 
			
		||||
| 
						 | 
				
			
			@ -5076,7 +5065,6 @@ CLANG CONTROL FLOW INTEGRITY SUPPORT
 | 
			
		|||
M:	Sami Tolvanen <samitolvanen@google.com>
 | 
			
		||||
M:	Kees Cook <keescook@chromium.org>
 | 
			
		||||
R:	Nathan Chancellor <nathan@kernel.org>
 | 
			
		||||
R:	Nick Desaulniers <ndesaulniers@google.com>
 | 
			
		||||
L:	llvm@lists.linux.dev
 | 
			
		||||
S:	Supported
 | 
			
		||||
B:	https://github.com/ClangBuiltLinux/linux/issues
 | 
			
		||||
| 
						 | 
				
			
			@ -5091,8 +5079,9 @@ F:	.clang-format
 | 
			
		|||
 | 
			
		||||
CLANG/LLVM BUILD SUPPORT
 | 
			
		||||
M:	Nathan Chancellor <nathan@kernel.org>
 | 
			
		||||
M:	Nick Desaulniers <ndesaulniers@google.com>
 | 
			
		||||
R:	Tom Rix <trix@redhat.com>
 | 
			
		||||
R:	Nick Desaulniers <ndesaulniers@google.com>
 | 
			
		||||
R:	Bill Wendling <morbo@google.com>
 | 
			
		||||
R:	Justin Stitt <justinstitt@google.com>
 | 
			
		||||
L:	llvm@lists.linux.dev
 | 
			
		||||
S:	Supported
 | 
			
		||||
W:	https://clangbuiltlinux.github.io/
 | 
			
		||||
| 
						 | 
				
			
			@ -5242,7 +5231,6 @@ F:	drivers/platform/x86/compal-laptop.c
 | 
			
		|||
 | 
			
		||||
COMPILER ATTRIBUTES
 | 
			
		||||
M:	Miguel Ojeda <ojeda@kernel.org>
 | 
			
		||||
R:	Nick Desaulniers <ndesaulniers@google.com>
 | 
			
		||||
S:	Maintained
 | 
			
		||||
F:	include/linux/compiler_attributes.h
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -5605,13 +5593,10 @@ F:	Documentation/driver-api/media/drivers/cx88*
 | 
			
		|||
F:	drivers/media/pci/cx88/
 | 
			
		||||
 | 
			
		||||
CXD2820R MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/dvb-frontends/cxd2820r*
 | 
			
		||||
 | 
			
		||||
CXGB3 ETHERNET DRIVER (CXGB3)
 | 
			
		||||
| 
						 | 
				
			
			@ -5724,13 +5709,10 @@ F:	Documentation/devicetree/bindings/input/cypress-sf.yaml
 | 
			
		|||
F:	drivers/input/keyboard/cypress-sf.c
 | 
			
		||||
 | 
			
		||||
CYPRESS_FIRMWARE MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/common/cypress_firmware*
 | 
			
		||||
 | 
			
		||||
CYTTSP TOUCHSCREEN DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -7320,53 +7302,38 @@ T:	git git://linuxtv.org/media_tree.git
 | 
			
		|||
F:	drivers/media/pci/dt3155/
 | 
			
		||||
 | 
			
		||||
DVB_USB_AF9015 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/usb/dvb-usb-v2/af9015*
 | 
			
		||||
 | 
			
		||||
DVB_USB_AF9035 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/usb/dvb-usb-v2/af9035*
 | 
			
		||||
 | 
			
		||||
DVB_USB_ANYSEE MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/usb/dvb-usb-v2/anysee*
 | 
			
		||||
 | 
			
		||||
DVB_USB_AU6610 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/usb/dvb-usb-v2/au6610*
 | 
			
		||||
 | 
			
		||||
DVB_USB_CE6230 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/usb/dvb-usb-v2/ce6230*
 | 
			
		||||
 | 
			
		||||
DVB_USB_CXUSB MEDIA DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -7380,22 +7347,17 @@ T:	git git://linuxtv.org/media_tree.git
 | 
			
		|||
F:	drivers/media/usb/dvb-usb/cxusb*
 | 
			
		||||
 | 
			
		||||
DVB_USB_EC168 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/usb/dvb-usb-v2/ec168*
 | 
			
		||||
 | 
			
		||||
DVB_USB_GL861 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/usb/dvb-usb-v2/gl861*
 | 
			
		||||
 | 
			
		||||
DVB_USB_MXL111SF MEDIA DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -7409,23 +7371,18 @@ T:	git git://linuxtv.org/mkrufky/mxl111sf.git
 | 
			
		|||
F:	drivers/media/usb/dvb-usb-v2/mxl111sf*
 | 
			
		||||
 | 
			
		||||
DVB_USB_RTL28XXU MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/usb/dvb-usb-v2/rtl28xxu*
 | 
			
		||||
 | 
			
		||||
DVB_USB_V2 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/usb/dvb-usb-v2/dvb_usb*
 | 
			
		||||
F:	drivers/media/usb/dvb-usb-v2/usb_urb.c
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -7467,13 +7424,10 @@ F:	Documentation/devicetree/bindings/input/e3x0-button.txt
 | 
			
		|||
F:	drivers/input/misc/e3x0-button.c
 | 
			
		||||
 | 
			
		||||
E4000 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/tuners/e4000*
 | 
			
		||||
 | 
			
		||||
EARTH_PT1 MEDIA DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -7489,13 +7443,10 @@ S:	Odd Fixes
 | 
			
		|||
F:	drivers/media/pci/pt3/
 | 
			
		||||
 | 
			
		||||
EC100 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/dvb-frontends/ec100*
 | 
			
		||||
 | 
			
		||||
ECRYPT FILE SYSTEM
 | 
			
		||||
| 
						 | 
				
			
			@ -7855,6 +7806,7 @@ R:	Yue Hu <huyue2@coolpad.com>
 | 
			
		|||
R:	Jeffle Xu <jefflexu@linux.alibaba.com>
 | 
			
		||||
L:	linux-erofs@lists.ozlabs.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
W:	https://erofs.docs.kernel.org
 | 
			
		||||
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
 | 
			
		||||
F:	Documentation/ABI/testing/sysfs-fs-erofs
 | 
			
		||||
F:	Documentation/filesystems/erofs.rst
 | 
			
		||||
| 
						 | 
				
			
			@ -8112,13 +8064,10 @@ F:	drivers/media/tuners/fc0011.c
 | 
			
		|||
F:	drivers/media/tuners/fc0011.h
 | 
			
		||||
 | 
			
		||||
FC2580 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/tuners/fc2580*
 | 
			
		||||
 | 
			
		||||
FCOE SUBSYSTEM (libfc, libfcoe, fcoe)
 | 
			
		||||
| 
						 | 
				
			
			@ -9248,13 +9197,10 @@ F:	include/trace/events/habanalabs.h
 | 
			
		|||
F:	include/uapi/drm/habanalabs_accel.h
 | 
			
		||||
 | 
			
		||||
HACKRF MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/usb/hackrf/
 | 
			
		||||
 | 
			
		||||
HANDSHAKE UPCALL FOR TRANSPORT LAYER SECURITY
 | 
			
		||||
| 
						 | 
				
			
			@ -9627,6 +9573,7 @@ F:	drivers/crypto/hisilicon/sgl.c
 | 
			
		|||
F:	include/linux/hisi_acc_qm.h
 | 
			
		||||
 | 
			
		||||
HISILICON ROCE DRIVER
 | 
			
		||||
M:	Chengchang Tang <tangchengchang@huawei.com>
 | 
			
		||||
M:	Junxian Huang <huangjunxian6@hisilicon.com>
 | 
			
		||||
L:	linux-rdma@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
| 
						 | 
				
			
			@ -11024,7 +10971,6 @@ F:	drivers/net/wireless/intel/iwlwifi/
 | 
			
		|||
 | 
			
		||||
INTEL WMI SLIM BOOTLOADER (SBL) FIRMWARE UPDATE DRIVER
 | 
			
		||||
M:	Jithu Joseph <jithu.joseph@intel.com>
 | 
			
		||||
R:	Maurice Ma <maurice.ma@intel.com>
 | 
			
		||||
S:	Maintained
 | 
			
		||||
W:	https://slimbootloader.github.io/security/firmware-update.html
 | 
			
		||||
F:	drivers/platform/x86/intel/wmi/sbl-fw-update.c
 | 
			
		||||
| 
						 | 
				
			
			@ -11328,13 +11274,10 @@ F:	Documentation/hwmon/it87.rst
 | 
			
		|||
F:	drivers/hwmon/it87.c
 | 
			
		||||
 | 
			
		||||
IT913X MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/tuners/it913x*
 | 
			
		||||
 | 
			
		||||
ITE IT66121 HDMI BRIDGE DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -11516,7 +11459,6 @@ F:	fs/autofs/
 | 
			
		|||
KERNEL BUILD + files below scripts/ (unless maintained elsewhere)
 | 
			
		||||
M:	Masahiro Yamada <masahiroy@kernel.org>
 | 
			
		||||
R:	Nathan Chancellor <nathan@kernel.org>
 | 
			
		||||
R:	Nick Desaulniers <ndesaulniers@google.com>
 | 
			
		||||
R:	Nicolas Schier <nicolas@fjasle.eu>
 | 
			
		||||
L:	linux-kbuild@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
| 
						 | 
				
			
			@ -12208,6 +12150,13 @@ F:	include/linux/nd.h
 | 
			
		|||
F:	include/uapi/linux/ndctl.h
 | 
			
		||||
F:	tools/testing/nvdimm/
 | 
			
		||||
 | 
			
		||||
LIBRARY CODE
 | 
			
		||||
M:	Andrew Morton <akpm@linux-foundation.org>
 | 
			
		||||
L:	linux-kernel@vger.kernel.org
 | 
			
		||||
S:	Supported
 | 
			
		||||
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-nonmm-unstable
 | 
			
		||||
F:	lib/*
 | 
			
		||||
 | 
			
		||||
LICENSES and SPDX stuff
 | 
			
		||||
M:	Thomas Gleixner <tglx@linutronix.de>
 | 
			
		||||
M:	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 | 
			
		||||
| 
						 | 
				
			
			@ -12687,13 +12636,10 @@ W:	http://www.tazenda.demon.co.uk/phil/linux-hp
 | 
			
		|||
F:	arch/m68k/hp300/
 | 
			
		||||
 | 
			
		||||
M88DS3103 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/dvb-frontends/m88ds3103*
 | 
			
		||||
 | 
			
		||||
M88RS2000 MEDIA DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -13778,7 +13724,6 @@ F:	drivers/net/ethernet/mellanox/mlxfw/
 | 
			
		|||
MELLANOX HARDWARE PLATFORM SUPPORT
 | 
			
		||||
M:	Hans de Goede <hdegoede@redhat.com>
 | 
			
		||||
M:	Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
 | 
			
		||||
M:	Mark Gross <markgross@kernel.org>
 | 
			
		||||
M:	Vadim Pasternak <vadimp@nvidia.com>
 | 
			
		||||
L:	platform-driver-x86@vger.kernel.org
 | 
			
		||||
S:	Supported
 | 
			
		||||
| 
						 | 
				
			
			@ -14387,7 +14332,6 @@ F:	drivers/platform/surface/surface_gpe.c
 | 
			
		|||
MICROSOFT SURFACE HARDWARE PLATFORM SUPPORT
 | 
			
		||||
M:	Hans de Goede <hdegoede@redhat.com>
 | 
			
		||||
M:	Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
 | 
			
		||||
M:	Mark Gross <markgross@kernel.org>
 | 
			
		||||
M:	Maximilian Luz <luzmaximilian@gmail.com>
 | 
			
		||||
L:	platform-driver-x86@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
| 
						 | 
				
			
			@ -14589,20 +14533,16 @@ F:	include/asm-generic/tlb.h
 | 
			
		|||
F:	mm/mmu_gather.c
 | 
			
		||||
 | 
			
		||||
MN88472 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
F:	drivers/media/dvb-frontends/mn88472*
 | 
			
		||||
 | 
			
		||||
MN88473 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
F:	drivers/media/dvb-frontends/mn88473*
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -14690,23 +14630,17 @@ S:	Orphan
 | 
			
		|||
F:	drivers/platform/x86/msi-wmi.c
 | 
			
		||||
 | 
			
		||||
MSI001 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/tuners/msi001*
 | 
			
		||||
 | 
			
		||||
MSI2500 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/usb/msi2500/
 | 
			
		||||
 | 
			
		||||
MSTAR INTERRUPT CONTROLLER DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -14994,6 +14928,7 @@ M:	Jakub Kicinski <kuba@kernel.org>
 | 
			
		|||
M:	Paolo Abeni <pabeni@redhat.com>
 | 
			
		||||
L:	netdev@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
P:	Documentation/process/maintainer-netdev.rst
 | 
			
		||||
Q:	https://patchwork.kernel.org/project/netdevbpf/list/
 | 
			
		||||
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
 | 
			
		||||
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git
 | 
			
		||||
| 
						 | 
				
			
			@ -15045,6 +14980,7 @@ M:	Jakub Kicinski <kuba@kernel.org>
 | 
			
		|||
M:	Paolo Abeni <pabeni@redhat.com>
 | 
			
		||||
L:	netdev@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
P:	Documentation/process/maintainer-netdev.rst
 | 
			
		||||
Q:	https://patchwork.kernel.org/project/netdevbpf/list/
 | 
			
		||||
B:	mailto:netdev@vger.kernel.org
 | 
			
		||||
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git
 | 
			
		||||
| 
						 | 
				
			
			@ -15055,6 +14991,7 @@ F:	Documentation/networking/
 | 
			
		|||
F:	Documentation/process/maintainer-netdev.rst
 | 
			
		||||
F:	Documentation/userspace-api/netlink/
 | 
			
		||||
F:	include/linux/in.h
 | 
			
		||||
F:	include/linux/indirect_call_wrapper.h
 | 
			
		||||
F:	include/linux/net.h
 | 
			
		||||
F:	include/linux/netdevice.h
 | 
			
		||||
F:	include/net/
 | 
			
		||||
| 
						 | 
				
			
			@ -15067,6 +15004,7 @@ F:	lib/random32.c
 | 
			
		|||
F:	net/
 | 
			
		||||
F:	tools/net/
 | 
			
		||||
F:	tools/testing/selftests/net/
 | 
			
		||||
X:	net/9p/
 | 
			
		||||
X:	net/bluetooth/
 | 
			
		||||
 | 
			
		||||
NETWORKING [IPSEC]
 | 
			
		||||
| 
						 | 
				
			
			@ -17774,13 +17712,10 @@ F:	drivers/bus/fsl-mc/
 | 
			
		|||
F:	include/uapi/linux/fsl_mc.h
 | 
			
		||||
 | 
			
		||||
QT1010 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/tuners/qt1010*
 | 
			
		||||
 | 
			
		||||
QUALCOMM ATH12K WIRELESS DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -17947,6 +17882,8 @@ L:	iommu@lists.linux.dev
 | 
			
		|||
L:	linux-arm-msm@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
F:	drivers/iommu/arm/arm-smmu/qcom_iommu.c
 | 
			
		||||
F:	drivers/iommu/arm/arm-smmu/arm-smmu-qcom*
 | 
			
		||||
F:	drivers/iommu/msm_iommu*
 | 
			
		||||
 | 
			
		||||
QUALCOMM IPC ROUTER (QRTR) DRIVER
 | 
			
		||||
M:	Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
 | 
			
		||||
| 
						 | 
				
			
			@ -18833,33 +18770,24 @@ S:	Maintained
 | 
			
		|||
F:	drivers/tty/rpmsg_tty.c
 | 
			
		||||
 | 
			
		||||
RTL2830 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/dvb-frontends/rtl2830*
 | 
			
		||||
 | 
			
		||||
RTL2832 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/dvb-frontends/rtl2832*
 | 
			
		||||
 | 
			
		||||
RTL2832_SDR MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/dvb-frontends/rtl2832_sdr*
 | 
			
		||||
 | 
			
		||||
RTL8180 WIRELESS DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -19669,13 +19597,10 @@ F:	drivers/media/platform/renesas/sh_vou.c
 | 
			
		|||
F:	include/media/drv-intf/sh_vou.h
 | 
			
		||||
 | 
			
		||||
SI2157 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/tuners/si2157*
 | 
			
		||||
 | 
			
		||||
SI2165 MEDIA DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -19687,13 +19612,10 @@ Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		|||
F:	drivers/media/dvb-frontends/si2165*
 | 
			
		||||
 | 
			
		||||
SI2168 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/dvb-frontends/si2168*
 | 
			
		||||
 | 
			
		||||
SI470X FM RADIO RECEIVER I2C DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -21195,33 +21117,24 @@ W:	http://tcp-lp-mod.sourceforge.net/
 | 
			
		|||
F:	net/ipv4/tcp_lp.c
 | 
			
		||||
 | 
			
		||||
TDA10071 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/dvb-frontends/tda10071*
 | 
			
		||||
 | 
			
		||||
TDA18212 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/tuners/tda18212*
 | 
			
		||||
 | 
			
		||||
TDA18218 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/tuners/tda18218*
 | 
			
		||||
 | 
			
		||||
TDA18250 MEDIA DRIVER
 | 
			
		||||
| 
						 | 
				
			
			@ -22078,6 +21991,7 @@ F:	drivers/watchdog/tqmx86_wdt.c
 | 
			
		|||
TRACING
 | 
			
		||||
M:	Steven Rostedt <rostedt@goodmis.org>
 | 
			
		||||
M:	Masami Hiramatsu <mhiramat@kernel.org>
 | 
			
		||||
R:	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
 | 
			
		||||
L:	linux-kernel@vger.kernel.org
 | 
			
		||||
L:	linux-trace-kernel@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
| 
						 | 
				
			
			@ -22156,13 +22070,10 @@ F:	include/uapi/linux/serial_core.h
 | 
			
		|||
F:	include/uapi/linux/tty.h
 | 
			
		||||
 | 
			
		||||
TUA9001 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	http://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
T:	git git://linuxtv.org/anttip/media_tree.git
 | 
			
		||||
F:	drivers/media/tuners/tua9001*
 | 
			
		||||
 | 
			
		||||
TULIP NETWORK DRIVERS
 | 
			
		||||
| 
						 | 
				
			
			@ -23663,7 +23574,6 @@ F:	drivers/platform/x86/x86-android-tablets/
 | 
			
		|||
X86 PLATFORM DRIVERS
 | 
			
		||||
M:	Hans de Goede <hdegoede@redhat.com>
 | 
			
		||||
M:	Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
 | 
			
		||||
M:	Mark Gross <markgross@kernel.org>
 | 
			
		||||
L:	platform-driver-x86@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
Q:	https://patchwork.kernel.org/project/platform-driver-x86/list/
 | 
			
		||||
| 
						 | 
				
			
			@ -24107,20 +24017,16 @@ S:	Orphan
 | 
			
		|||
F:	drivers/net/wireless/zydas/zd1211rw/
 | 
			
		||||
 | 
			
		||||
ZD1301 MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org/
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	https://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
F:	drivers/media/usb/dvb-usb-v2/zd1301*
 | 
			
		||||
 | 
			
		||||
ZD1301_DEMOD MEDIA DRIVER
 | 
			
		||||
M:	Antti Palosaari <crope@iki.fi>
 | 
			
		||||
L:	linux-media@vger.kernel.org
 | 
			
		||||
S:	Maintained
 | 
			
		||||
S:	Orphan
 | 
			
		||||
W:	https://linuxtv.org/
 | 
			
		||||
W:	http://palosaari.fi/linux/
 | 
			
		||||
Q:	https://patchwork.linuxtv.org/project/linux-media/list/
 | 
			
		||||
F:	drivers/media/dvb-frontends/zd1301_demod*
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
VERSION = 6
 | 
			
		||||
PATCHLEVEL = 7
 | 
			
		||||
SUBLEVEL = 0
 | 
			
		||||
EXTRAVERSION = -rc2
 | 
			
		||||
EXTRAVERSION = -rc5
 | 
			
		||||
NAME = Hurr durr I'ma ninja sloth
 | 
			
		||||
 | 
			
		||||
# *DOCUMENTATION*
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,9 +36,7 @@ &led_pwr {
 | 
			
		|||
	gpios = <&gpio 42 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&leds {
 | 
			
		||||
	/delete-node/ led_act;
 | 
			
		||||
};
 | 
			
		||||
/delete-node/ &led_act;
 | 
			
		||||
 | 
			
		||||
&pm {
 | 
			
		||||
	/delete-property/ system-power-controller;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -37,9 +37,9 @@ panel_in: endpoint {
 | 
			
		|||
 | 
			
		||||
&clks {
 | 
			
		||||
	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
 | 
			
		||||
			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
 | 
			
		||||
			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>, <&clks IMX6QDL_CLK_ENET_REF_SEL>;
 | 
			
		||||
	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
 | 
			
		||||
				 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>;
 | 
			
		||||
				 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>, <&clk50m_phy>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&hdmi {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -121,6 +121,8 @@ ethphy1: ethernet-phy@1 {
 | 
			
		|||
			max-speed = <100>;
 | 
			
		||||
			interrupt-parent = <&gpio5>;
 | 
			
		||||
			interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
			clocks = <&clks IMX6UL_CLK_ENET_REF>;
 | 
			
		||||
			clock-names = "rmii-ref";
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -454,7 +454,7 @@ iomuxc_lpsr: pinctrl@302c0000 {
 | 
			
		|||
			};
 | 
			
		||||
 | 
			
		||||
			gpt1: timer@302d0000 {
 | 
			
		||||
				compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
 | 
			
		||||
				compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt";
 | 
			
		||||
				reg = <0x302d0000 0x10000>;
 | 
			
		||||
				interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
				clocks = <&clks IMX7D_GPT1_ROOT_CLK>,
 | 
			
		||||
| 
						 | 
				
			
			@ -463,7 +463,7 @@ gpt1: timer@302d0000 {
 | 
			
		|||
			};
 | 
			
		||||
 | 
			
		||||
			gpt2: timer@302e0000 {
 | 
			
		||||
				compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
 | 
			
		||||
				compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt";
 | 
			
		||||
				reg = <0x302e0000 0x10000>;
 | 
			
		||||
				interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
				clocks = <&clks IMX7D_GPT2_ROOT_CLK>,
 | 
			
		||||
| 
						 | 
				
			
			@ -473,7 +473,7 @@ gpt2: timer@302e0000 {
 | 
			
		|||
			};
 | 
			
		||||
 | 
			
		||||
			gpt3: timer@302f0000 {
 | 
			
		||||
				compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
 | 
			
		||||
				compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt";
 | 
			
		||||
				reg = <0x302f0000 0x10000>;
 | 
			
		||||
				interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
				clocks = <&clks IMX7D_GPT3_ROOT_CLK>,
 | 
			
		||||
| 
						 | 
				
			
			@ -483,7 +483,7 @@ gpt3: timer@302f0000 {
 | 
			
		|||
			};
 | 
			
		||||
 | 
			
		||||
			gpt4: timer@30300000 {
 | 
			
		||||
				compatible = "fsl,imx7d-gpt", "fsl,imx6sx-gpt";
 | 
			
		||||
				compatible = "fsl,imx7d-gpt", "fsl,imx6dl-gpt";
 | 
			
		||||
				reg = <0x30300000 0x10000>;
 | 
			
		||||
				interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
				clocks = <&clks IMX7D_GPT4_ROOT_CLK>,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -8,6 +8,7 @@
 | 
			
		|||
#include "imx28-lwe.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Liebherr XEA board";
 | 
			
		||||
	compatible = "lwn,imx28-xea", "fsl,imx28";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -848,7 +848,7 @@ sdmmc_wp: sdmmc-wp {
 | 
			
		|||
			};
 | 
			
		||||
 | 
			
		||||
			sdmmc_pwren: sdmmc-pwren {
 | 
			
		||||
				rockchip,pins = <1 RK_PB6 1 &pcfg_pull_default>;
 | 
			
		||||
				rockchip,pins = <1 RK_PB6 RK_FUNC_GPIO &pcfg_pull_default>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			sdmmc_bus4: sdmmc-bus4 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -215,9 +215,9 @@ power-domain@RK3228_PD_VIO {
 | 
			
		|||
 | 
			
		||||
			power-domain@RK3228_PD_VOP {
 | 
			
		||||
				reg = <RK3228_PD_VOP>;
 | 
			
		||||
				clocks =<&cru ACLK_VOP>,
 | 
			
		||||
					<&cru DCLK_VOP>,
 | 
			
		||||
					<&cru HCLK_VOP>;
 | 
			
		||||
				clocks = <&cru ACLK_VOP>,
 | 
			
		||||
					 <&cru DCLK_VOP>,
 | 
			
		||||
					 <&cru HCLK_VOP>;
 | 
			
		||||
				pm_qos = <&qos_vop>;
 | 
			
		||||
				#power-domain-cells = <0>;
 | 
			
		||||
			};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,8 +2,6 @@
 | 
			
		|||
#ifndef _ARM_KEXEC_H
 | 
			
		||||
#define _ARM_KEXEC_H
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_KEXEC
 | 
			
		||||
 | 
			
		||||
/* Maximum physical address we can use pages from */
 | 
			
		||||
#define KEXEC_SOURCE_MEMORY_LIMIT (-1UL)
 | 
			
		||||
/* Maximum address we can reach in physical address mode */
 | 
			
		||||
| 
						 | 
				
			
			@ -82,6 +80,4 @@ static inline struct page *boot_pfn_to_page(unsigned long boot_pfn)
 | 
			
		|||
 | 
			
		||||
#endif /* __ASSEMBLY__ */
 | 
			
		||||
 | 
			
		||||
#endif /* CONFIG_KEXEC */
 | 
			
		||||
 | 
			
		||||
#endif /* _ARM_KEXEC_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -59,7 +59,7 @@ obj-$(CONFIG_FUNCTION_TRACER)	+= entry-ftrace.o
 | 
			
		|||
obj-$(CONFIG_DYNAMIC_FTRACE)	+= ftrace.o insn.o patch.o
 | 
			
		||||
obj-$(CONFIG_FUNCTION_GRAPH_TRACER)	+= ftrace.o insn.o patch.o
 | 
			
		||||
obj-$(CONFIG_JUMP_LABEL)	+= jump_label.o insn.o patch.o
 | 
			
		||||
obj-$(CONFIG_KEXEC)		+= machine_kexec.o relocate_kernel.o
 | 
			
		||||
obj-$(CONFIG_KEXEC_CORE)	+= machine_kexec.o relocate_kernel.o
 | 
			
		||||
# Main staffs in KPROBES are in arch/arm/probes/ .
 | 
			
		||||
obj-$(CONFIG_KPROBES)		+= patch.o insn.o
 | 
			
		||||
obj-$(CONFIG_OABI_COMPAT)	+= sys_oabi-compat.o
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -501,6 +501,10 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
 | 
			
		|||
 | 
			
		||||
	name = devm_kasprintf(&pdev->dev,
 | 
			
		||||
				GFP_KERNEL, "mmdc%d", ret);
 | 
			
		||||
	if (!name) {
 | 
			
		||||
		ret = -ENOMEM;
 | 
			
		||||
		goto pmu_release_id;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
 | 
			
		||||
	pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;
 | 
			
		||||
| 
						 | 
				
			
			@ -523,9 +527,10 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
 | 
			
		|||
 | 
			
		||||
pmu_register_err:
 | 
			
		||||
	pr_warn("MMDC Perf PMU failed (%d), disabled\n", ret);
 | 
			
		||||
	ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
 | 
			
		||||
	cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
 | 
			
		||||
	hrtimer_cancel(&pmu_mmdc->hrtimer);
 | 
			
		||||
pmu_release_id:
 | 
			
		||||
	ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
 | 
			
		||||
pmu_free:
 | 
			
		||||
	kfree(pmu_mmdc);
 | 
			
		||||
	return ret;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -484,7 +484,8 @@ static int __init xen_guest_init(void)
 | 
			
		|||
	 * for secondary CPUs as they are brought up.
 | 
			
		||||
	 * For uniformity we use VCPUOP_register_vcpu_info even on cpu0.
 | 
			
		||||
	 */
 | 
			
		||||
	xen_vcpu_info = alloc_percpu(struct vcpu_info);
 | 
			
		||||
	xen_vcpu_info = __alloc_percpu(sizeof(struct vcpu_info),
 | 
			
		||||
				       1 << fls(sizeof(struct vcpu_info) - 1));
 | 
			
		||||
	if (xen_vcpu_info == NULL)
 | 
			
		||||
		return -ENOMEM;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -158,7 +158,7 @@ endif
 | 
			
		|||
 | 
			
		||||
all:	$(notdir $(KBUILD_IMAGE))
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
vmlinuz.efi: Image
 | 
			
		||||
Image vmlinuz.efi: vmlinux
 | 
			
		||||
	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -82,12 +82,9 @@ reg_module_wifi: regulator-module-wifi {
 | 
			
		|||
		pinctrl-0 = <&pinctrl_wifi_pdn>;
 | 
			
		||||
		gpio = <&lsio_gpio1 28 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		enable-active-high;
 | 
			
		||||
		regulator-always-on;
 | 
			
		||||
		regulator-name = "wifi_pwrdn_fake_regulator";
 | 
			
		||||
		regulator-settling-time-us = <100>;
 | 
			
		||||
 | 
			
		||||
		regulator-state-mem {
 | 
			
		||||
			regulator-off-in-suspend;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	reg_pcie_switch: regulator-pcie-switch {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -149,7 +149,7 @@ adma_pwm: pwm@5a190000 {
 | 
			
		|||
		clock-names = "ipg", "per";
 | 
			
		||||
		assigned-clocks = <&clk IMX_SC_R_LCD_0_PWM_0 IMX_SC_PM_CLK_PER>;
 | 
			
		||||
		assigned-clock-rates = <24000000>;
 | 
			
		||||
		#pwm-cells = <2>;
 | 
			
		||||
		#pwm-cells = <3>;
 | 
			
		||||
		power-domains = <&pd IMX_SC_R_LCD_0_PWM_0>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,7 +29,7 @@ lsio_pwm0: pwm@5d000000 {
 | 
			
		|||
			 <&pwm0_lpcg 1>;
 | 
			
		||||
		assigned-clocks = <&clk IMX_SC_R_PWM_0 IMX_SC_PM_CLK_PER>;
 | 
			
		||||
		assigned-clock-rates = <24000000>;
 | 
			
		||||
		#pwm-cells = <2>;
 | 
			
		||||
		#pwm-cells = <3>;
 | 
			
		||||
		interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
		status = "disabled";
 | 
			
		||||
	};
 | 
			
		||||
| 
						 | 
				
			
			@ -42,7 +42,7 @@ lsio_pwm1: pwm@5d010000 {
 | 
			
		|||
			 <&pwm1_lpcg 1>;
 | 
			
		||||
		assigned-clocks = <&clk IMX_SC_R_PWM_1 IMX_SC_PM_CLK_PER>;
 | 
			
		||||
		assigned-clock-rates = <24000000>;
 | 
			
		||||
		#pwm-cells = <2>;
 | 
			
		||||
		#pwm-cells = <3>;
 | 
			
		||||
		interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
		status = "disabled";
 | 
			
		||||
	};
 | 
			
		||||
| 
						 | 
				
			
			@ -55,7 +55,7 @@ lsio_pwm2: pwm@5d020000 {
 | 
			
		|||
			 <&pwm2_lpcg 1>;
 | 
			
		||||
		assigned-clocks = <&clk IMX_SC_R_PWM_2 IMX_SC_PM_CLK_PER>;
 | 
			
		||||
		assigned-clock-rates = <24000000>;
 | 
			
		||||
		#pwm-cells = <2>;
 | 
			
		||||
		#pwm-cells = <3>;
 | 
			
		||||
		interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
		status = "disabled";
 | 
			
		||||
	};
 | 
			
		||||
| 
						 | 
				
			
			@ -68,7 +68,7 @@ lsio_pwm3: pwm@5d030000 {
 | 
			
		|||
			 <&pwm3_lpcg 1>;
 | 
			
		||||
		assigned-clocks = <&clk IMX_SC_R_PWM_3 IMX_SC_PM_CLK_PER>;
 | 
			
		||||
		assigned-clock-rates = <24000000>;
 | 
			
		||||
		#pwm-cells = <2>;
 | 
			
		||||
		#pwm-cells = <3>;
 | 
			
		||||
		interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
		status = "disabled";
 | 
			
		||||
	};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2072,6 +2072,7 @@ usb_dwc3_0: usb@38100000 {
 | 
			
		|||
				phys = <&usb3_phy0>, <&usb3_phy0>;
 | 
			
		||||
				phy-names = "usb2-phy", "usb3-phy";
 | 
			
		||||
				snps,gfladj-refclk-lpm-sel-quirk;
 | 
			
		||||
				snps,parkmode-disable-ss-quirk;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
		};
 | 
			
		||||
| 
						 | 
				
			
			@ -2114,6 +2115,7 @@ usb_dwc3_1: usb@38200000 {
 | 
			
		|||
				phys = <&usb3_phy1>, <&usb3_phy1>;
 | 
			
		||||
				phy-names = "usb2-phy", "usb3-phy";
 | 
			
		||||
				snps,gfladj-refclk-lpm-sel-quirk;
 | 
			
		||||
				snps,parkmode-disable-ss-quirk;
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1649,6 +1649,7 @@ usb_dwc3_0: usb@38100000 {
 | 
			
		|||
			phys = <&usb3_phy0>, <&usb3_phy0>;
 | 
			
		||||
			phy-names = "usb2-phy", "usb3-phy";
 | 
			
		||||
			power-domains = <&pgc_otg1>;
 | 
			
		||||
			snps,parkmode-disable-ss-quirk;
 | 
			
		||||
			status = "disabled";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1680,6 +1681,7 @@ usb_dwc3_1: usb@38200000 {
 | 
			
		|||
			phys = <&usb3_phy1>, <&usb3_phy1>;
 | 
			
		||||
			phy-names = "usb2-phy", "usb3-phy";
 | 
			
		||||
			power-domains = <&pgc_otg2>;
 | 
			
		||||
			snps,parkmode-disable-ss-quirk;
 | 
			
		||||
			status = "disabled";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -96,6 +96,17 @@ &edma2 {
 | 
			
		|||
	status = "okay";
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&edma3 {
 | 
			
		||||
	power-domains = <&pd IMX_SC_R_DMA_1_CH0>,
 | 
			
		||||
		     <&pd IMX_SC_R_DMA_1_CH1>,
 | 
			
		||||
		     <&pd IMX_SC_R_DMA_1_CH2>,
 | 
			
		||||
		     <&pd IMX_SC_R_DMA_1_CH3>,
 | 
			
		||||
		     <&pd IMX_SC_R_DMA_1_CH4>,
 | 
			
		||||
		     <&pd IMX_SC_R_DMA_1_CH5>,
 | 
			
		||||
		     <&pd IMX_SC_R_DMA_1_CH6>,
 | 
			
		||||
		     <&pd IMX_SC_R_DMA_1_CH7>;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
&flexcan1 {
 | 
			
		||||
	fsl,clk-source = /bits/ 8 <1>;
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -483,7 +483,7 @@ fec: ethernet@29950000 {
 | 
			
		|||
			};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gpioe: gpio@2d000080 {
 | 
			
		||||
		gpioe: gpio@2d000000 {
 | 
			
		||||
				compatible = "fsl,imx8ulp-gpio";
 | 
			
		||||
				reg = <0x2d000000 0x1000>;
 | 
			
		||||
				gpio-controller;
 | 
			
		||||
| 
						 | 
				
			
			@ -498,7 +498,7 @@ gpioe: gpio@2d000080 {
 | 
			
		|||
				gpio-ranges = <&iomuxc1 0 32 24>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gpiof: gpio@2d010080 {
 | 
			
		||||
		gpiof: gpio@2d010000 {
 | 
			
		||||
				compatible = "fsl,imx8ulp-gpio";
 | 
			
		||||
				reg = <0x2d010000 0x1000>;
 | 
			
		||||
				gpio-controller;
 | 
			
		||||
| 
						 | 
				
			
			@ -534,7 +534,7 @@ pcc5: clock-controller@2da70000 {
 | 
			
		|||
			};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gpiod: gpio@2e200080 {
 | 
			
		||||
		gpiod: gpio@2e200000 {
 | 
			
		||||
			compatible = "fsl,imx8ulp-gpio";
 | 
			
		||||
			reg = <0x2e200000 0x1000>;
 | 
			
		||||
			gpio-controller;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -577,7 +577,7 @@ pinctrl_uart2: uart2grp {
 | 
			
		|||
		fsl,pins = <
 | 
			
		||||
			MX93_PAD_UART2_TXD__LPUART2_TX		0x31e
 | 
			
		||||
			MX93_PAD_UART2_RXD__LPUART2_RX		0x31e
 | 
			
		||||
			MX93_PAD_SAI1_TXD0__LPUART2_RTS_B	0x31e
 | 
			
		||||
			MX93_PAD_SAI1_TXD0__LPUART2_RTS_B	0x51e
 | 
			
		||||
		>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -417,7 +417,7 @@ mediamix: power-domain@44462400 {
 | 
			
		|||
					compatible = "fsl,imx93-src-slice";
 | 
			
		||||
					reg = <0x44462400 0x400>, <0x44465800 0x400>;
 | 
			
		||||
					#power-domain-cells = <0>;
 | 
			
		||||
					clocks = <&clk IMX93_CLK_MEDIA_AXI>,
 | 
			
		||||
					clocks = <&clk IMX93_CLK_NIC_MEDIA_GATE>,
 | 
			
		||||
						 <&clk IMX93_CLK_MEDIA_APB>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
| 
						 | 
				
			
			@ -957,7 +957,7 @@ usdhc3: mmc@428b0000 {
 | 
			
		|||
			};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gpio2: gpio@43810080 {
 | 
			
		||||
		gpio2: gpio@43810000 {
 | 
			
		||||
			compatible = "fsl,imx93-gpio", "fsl,imx8ulp-gpio";
 | 
			
		||||
			reg = <0x43810000 0x1000>;
 | 
			
		||||
			gpio-controller;
 | 
			
		||||
| 
						 | 
				
			
			@ -972,7 +972,7 @@ gpio2: gpio@43810080 {
 | 
			
		|||
			gpio-ranges = <&iomuxc 0 4 30>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gpio3: gpio@43820080 {
 | 
			
		||||
		gpio3: gpio@43820000 {
 | 
			
		||||
			compatible = "fsl,imx93-gpio", "fsl,imx8ulp-gpio";
 | 
			
		||||
			reg = <0x43820000 0x1000>;
 | 
			
		||||
			gpio-controller;
 | 
			
		||||
| 
						 | 
				
			
			@ -988,7 +988,7 @@ gpio3: gpio@43820080 {
 | 
			
		|||
				      <&iomuxc 26 34 2>, <&iomuxc 28 0 4>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gpio4: gpio@43830080 {
 | 
			
		||||
		gpio4: gpio@43830000 {
 | 
			
		||||
			compatible = "fsl,imx93-gpio", "fsl,imx8ulp-gpio";
 | 
			
		||||
			reg = <0x43830000 0x1000>;
 | 
			
		||||
			gpio-controller;
 | 
			
		||||
| 
						 | 
				
			
			@ -1003,7 +1003,7 @@ gpio4: gpio@43830080 {
 | 
			
		|||
			gpio-ranges = <&iomuxc 0 38 28>, <&iomuxc 28 36 2>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		gpio1: gpio@47400080 {
 | 
			
		||||
		gpio1: gpio@47400000 {
 | 
			
		||||
			compatible = "fsl,imx93-gpio", "fsl,imx8ulp-gpio";
 | 
			
		||||
			reg = <0x47400000 0x1000>;
 | 
			
		||||
			gpio-controller;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -73,7 +73,7 @@ led-1 {
 | 
			
		|||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	memory {
 | 
			
		||||
	memory@40000000 {
 | 
			
		||||
		reg = <0 0x40000000 0 0x40000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,7 +55,7 @@ key-wps {
 | 
			
		|||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	memory {
 | 
			
		||||
	memory@40000000 {
 | 
			
		||||
		reg = <0 0x40000000 0 0x20000000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -126,6 +126,7 @@ sfp1: sfp-1 {
 | 
			
		|||
		compatible = "sff,sfp";
 | 
			
		||||
		i2c-bus = <&i2c_sfp1>;
 | 
			
		||||
		los-gpios = <&pio 46 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		maximum-power-milliwatt = <3000>;
 | 
			
		||||
		mod-def0-gpios = <&pio 49 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		tx-disable-gpios = <&pio 20 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		tx-fault-gpios = <&pio 7 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
| 
						 | 
				
			
			@ -137,6 +138,7 @@ sfp2: sfp-2 {
 | 
			
		|||
		i2c-bus = <&i2c_sfp2>;
 | 
			
		||||
		los-gpios = <&pio 31 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		mod-def0-gpios = <&pio 47 GPIO_ACTIVE_LOW>;
 | 
			
		||||
		maximum-power-milliwatt = <3000>;
 | 
			
		||||
		tx-disable-gpios = <&pio 15 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
		tx-fault-gpios = <&pio 48 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	};
 | 
			
		||||
| 
						 | 
				
			
			@ -150,16 +152,16 @@ cpu-active-high {
 | 
			
		|||
			trip = <&cpu_trip_active_high>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		cpu-active-low {
 | 
			
		||||
		cpu-active-med {
 | 
			
		||||
			/* active: set fan to cooling level 1 */
 | 
			
		||||
			cooling-device = <&fan 1 1>;
 | 
			
		||||
			trip = <&cpu_trip_active_low>;
 | 
			
		||||
			trip = <&cpu_trip_active_med>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		cpu-passive {
 | 
			
		||||
			/* passive: set fan to cooling level 0 */
 | 
			
		||||
		cpu-active-low {
 | 
			
		||||
			/* active: set fan to cooling level 0 */
 | 
			
		||||
			cooling-device = <&fan 0 0>;
 | 
			
		||||
			trip = <&cpu_trip_passive>;
 | 
			
		||||
			trip = <&cpu_trip_active_low>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -374,6 +374,10 @@ mmc0: mmc@11230000 {
 | 
			
		|||
			reg = <0 0x11230000 0 0x1000>,
 | 
			
		||||
			      <0 0x11c20000 0 0x1000>;
 | 
			
		||||
			interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
			assigned-clocks = <&topckgen CLK_TOP_EMMC_416M_SEL>,
 | 
			
		||||
					  <&topckgen CLK_TOP_EMMC_250M_SEL>;
 | 
			
		||||
			assigned-clock-parents = <&apmixedsys CLK_APMIXED_MPLL>,
 | 
			
		||||
						 <&topckgen CLK_TOP_NET1PLL_D5_D2>;
 | 
			
		||||
			clocks = <&topckgen CLK_TOP_EMMC_416M_SEL>,
 | 
			
		||||
				 <&infracfg CLK_INFRA_MSDC_HCK_CK>,
 | 
			
		||||
				 <&infracfg CLK_INFRA_MSDC_CK>,
 | 
			
		||||
| 
						 | 
				
			
			@ -610,22 +614,34 @@ cpu_thermal: cpu-thermal {
 | 
			
		|||
			thermal-sensors = <&thermal 0>;
 | 
			
		||||
 | 
			
		||||
			trips {
 | 
			
		||||
				cpu_trip_crit: crit {
 | 
			
		||||
					temperature = <125000>;
 | 
			
		||||
					hysteresis = <2000>;
 | 
			
		||||
					type = "critical";
 | 
			
		||||
				};
 | 
			
		||||
 | 
			
		||||
				cpu_trip_hot: hot {
 | 
			
		||||
					temperature = <120000>;
 | 
			
		||||
					hysteresis = <2000>;
 | 
			
		||||
					type = "hot";
 | 
			
		||||
				};
 | 
			
		||||
 | 
			
		||||
				cpu_trip_active_high: active-high {
 | 
			
		||||
					temperature = <115000>;
 | 
			
		||||
					hysteresis = <2000>;
 | 
			
		||||
					type = "active";
 | 
			
		||||
				};
 | 
			
		||||
 | 
			
		||||
				cpu_trip_active_low: active-low {
 | 
			
		||||
				cpu_trip_active_med: active-med {
 | 
			
		||||
					temperature = <85000>;
 | 
			
		||||
					hysteresis = <2000>;
 | 
			
		||||
					type = "active";
 | 
			
		||||
				};
 | 
			
		||||
 | 
			
		||||
				cpu_trip_passive: passive {
 | 
			
		||||
					temperature = <40000>;
 | 
			
		||||
				cpu_trip_active_low: active-low {
 | 
			
		||||
					temperature = <60000>;
 | 
			
		||||
					hysteresis = <2000>;
 | 
			
		||||
					type = "passive";
 | 
			
		||||
					type = "active";
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,7 +44,7 @@ extcon_usb: extcon_iddig {
 | 
			
		|||
		id-gpio = <&pio 16 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb_p1_vbus: regulator@0 {
 | 
			
		||||
	usb_p1_vbus: regulator-usb-p1 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "usb_vbus";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
| 
						 | 
				
			
			@ -53,7 +53,7 @@ usb_p1_vbus: regulator@0 {
 | 
			
		|||
		enable-active-high;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	usb_p0_vbus: regulator@1 {
 | 
			
		||||
	usb_p0_vbus: regulator-usb-p0 {
 | 
			
		||||
		compatible = "regulator-fixed";
 | 
			
		||||
		regulator-name = "vbus";
 | 
			
		||||
		regulator-min-microvolt = <5000000>;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -31,14 +31,14 @@ reserved-memory {
 | 
			
		|||
		#address-cells = <2>;
 | 
			
		||||
		#size-cells = <2>;
 | 
			
		||||
		ranges;
 | 
			
		||||
		scp_mem_reserved: scp_mem_region {
 | 
			
		||||
		scp_mem_reserved: memory@50000000 {
 | 
			
		||||
			compatible = "shared-dma-pool";
 | 
			
		||||
			reg = <0 0x50000000 0 0x2900000>;
 | 
			
		||||
			no-map;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ntc@0 {
 | 
			
		||||
	thermal-sensor {
 | 
			
		||||
		compatible = "murata,ncp03wf104";
 | 
			
		||||
		pullup-uv = <1800000>;
 | 
			
		||||
		pullup-ohm = <390000>;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -91,6 +91,8 @@ cros_ec_pwm: pwm {
 | 
			
		|||
 | 
			
		||||
&dsi0 {
 | 
			
		||||
	status = "okay";
 | 
			
		||||
	/delete-property/#size-cells;
 | 
			
		||||
	/delete-property/#address-cells;
 | 
			
		||||
	/delete-node/panel@0;
 | 
			
		||||
	ports {
 | 
			
		||||
		port {
 | 
			
		||||
| 
						 | 
				
			
			@ -441,20 +443,20 @@ pins2 {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	touchscreen_pins: touchscreen-pins {
 | 
			
		||||
		touch_int_odl {
 | 
			
		||||
		touch-int-odl {
 | 
			
		||||
			pinmux = <PINMUX_GPIO155__FUNC_GPIO155>;
 | 
			
		||||
			input-enable;
 | 
			
		||||
			bias-pull-up;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		touch_rst_l {
 | 
			
		||||
		touch-rst-l {
 | 
			
		||||
			pinmux = <PINMUX_GPIO156__FUNC_GPIO156>;
 | 
			
		||||
			output-high;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	trackpad_pins: trackpad-pins {
 | 
			
		||||
		trackpad_int {
 | 
			
		||||
		trackpad-int {
 | 
			
		||||
			pinmux = <PINMUX_GPIO7__FUNC_GPIO7>;
 | 
			
		||||
			input-enable;
 | 
			
		||||
			bias-disable; /* pulled externally */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -116,7 +116,7 @@ reserved_memory: reserved-memory {
 | 
			
		|||
		#size-cells = <2>;
 | 
			
		||||
		ranges;
 | 
			
		||||
 | 
			
		||||
		scp_mem_reserved: scp_mem_region {
 | 
			
		||||
		scp_mem_reserved: memory@50000000 {
 | 
			
		||||
			compatible = "shared-dma-pool";
 | 
			
		||||
			reg = <0 0x50000000 0 0x2900000>;
 | 
			
		||||
			no-map;
 | 
			
		||||
| 
						 | 
				
			
			@ -460,7 +460,7 @@ &mt6358_vsram_gpu_reg {
 | 
			
		|||
 | 
			
		||||
&pio {
 | 
			
		||||
	aud_pins_default: audiopins {
 | 
			
		||||
		pins_bus {
 | 
			
		||||
		pins-bus {
 | 
			
		||||
			pinmux = <PINMUX_GPIO97__FUNC_I2S2_MCK>,
 | 
			
		||||
				<PINMUX_GPIO98__FUNC_I2S2_BCK>,
 | 
			
		||||
				<PINMUX_GPIO101__FUNC_I2S2_LRCK>,
 | 
			
		||||
| 
						 | 
				
			
			@ -482,7 +482,7 @@ pins_bus {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	aud_pins_tdm_out_on: audiotdmouton {
 | 
			
		||||
		pins_bus {
 | 
			
		||||
		pins-bus {
 | 
			
		||||
			pinmux = <PINMUX_GPIO169__FUNC_TDM_BCK_2ND>,
 | 
			
		||||
				<PINMUX_GPIO170__FUNC_TDM_LRCK_2ND>,
 | 
			
		||||
				<PINMUX_GPIO171__FUNC_TDM_DATA0_2ND>,
 | 
			
		||||
| 
						 | 
				
			
			@ -494,7 +494,7 @@ pins_bus {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	aud_pins_tdm_out_off: audiotdmoutoff {
 | 
			
		||||
		pins_bus {
 | 
			
		||||
		pins-bus {
 | 
			
		||||
			pinmux = <PINMUX_GPIO169__FUNC_GPIO169>,
 | 
			
		||||
				<PINMUX_GPIO170__FUNC_GPIO170>,
 | 
			
		||||
				<PINMUX_GPIO171__FUNC_GPIO171>,
 | 
			
		||||
| 
						 | 
				
			
			@ -508,13 +508,13 @@ pins_bus {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	bt_pins: bt-pins {
 | 
			
		||||
		pins_bt_en {
 | 
			
		||||
		pins-bt-en {
 | 
			
		||||
			pinmux = <PINMUX_GPIO120__FUNC_GPIO120>;
 | 
			
		||||
			output-low;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	ec_ap_int_odl: ec_ap_int_odl {
 | 
			
		||||
	ec_ap_int_odl: ec-ap-int-odl {
 | 
			
		||||
		pins1 {
 | 
			
		||||
			pinmux = <PINMUX_GPIO151__FUNC_GPIO151>;
 | 
			
		||||
			input-enable;
 | 
			
		||||
| 
						 | 
				
			
			@ -522,7 +522,7 @@ pins1 {
 | 
			
		|||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	h1_int_od_l: h1_int_od_l {
 | 
			
		||||
	h1_int_od_l: h1-int-od-l {
 | 
			
		||||
		pins1 {
 | 
			
		||||
			pinmux = <PINMUX_GPIO153__FUNC_GPIO153>;
 | 
			
		||||
			input-enable;
 | 
			
		||||
| 
						 | 
				
			
			@ -530,7 +530,7 @@ pins1 {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	i2c0_pins: i2c0 {
 | 
			
		||||
		pins_bus {
 | 
			
		||||
		pins-bus {
 | 
			
		||||
			pinmux = <PINMUX_GPIO82__FUNC_SDA0>,
 | 
			
		||||
				 <PINMUX_GPIO83__FUNC_SCL0>;
 | 
			
		||||
			mediatek,pull-up-adv = <3>;
 | 
			
		||||
| 
						 | 
				
			
			@ -539,7 +539,7 @@ pins_bus {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	i2c1_pins: i2c1 {
 | 
			
		||||
		pins_bus {
 | 
			
		||||
		pins-bus {
 | 
			
		||||
			pinmux = <PINMUX_GPIO81__FUNC_SDA1>,
 | 
			
		||||
				 <PINMUX_GPIO84__FUNC_SCL1>;
 | 
			
		||||
			mediatek,pull-up-adv = <3>;
 | 
			
		||||
| 
						 | 
				
			
			@ -548,7 +548,7 @@ pins_bus {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	i2c2_pins: i2c2 {
 | 
			
		||||
		pins_bus {
 | 
			
		||||
		pins-bus {
 | 
			
		||||
			pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
 | 
			
		||||
				 <PINMUX_GPIO104__FUNC_SDA2>;
 | 
			
		||||
			bias-disable;
 | 
			
		||||
| 
						 | 
				
			
			@ -557,7 +557,7 @@ pins_bus {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	i2c3_pins: i2c3 {
 | 
			
		||||
		pins_bus {
 | 
			
		||||
		pins-bus {
 | 
			
		||||
			pinmux = <PINMUX_GPIO50__FUNC_SCL3>,
 | 
			
		||||
				 <PINMUX_GPIO51__FUNC_SDA3>;
 | 
			
		||||
			mediatek,pull-up-adv = <3>;
 | 
			
		||||
| 
						 | 
				
			
			@ -566,7 +566,7 @@ pins_bus {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	i2c4_pins: i2c4 {
 | 
			
		||||
		pins_bus {
 | 
			
		||||
		pins-bus {
 | 
			
		||||
			pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
 | 
			
		||||
				 <PINMUX_GPIO106__FUNC_SDA4>;
 | 
			
		||||
			bias-disable;
 | 
			
		||||
| 
						 | 
				
			
			@ -575,7 +575,7 @@ pins_bus {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	i2c5_pins: i2c5 {
 | 
			
		||||
		pins_bus {
 | 
			
		||||
		pins-bus {
 | 
			
		||||
			pinmux = <PINMUX_GPIO48__FUNC_SCL5>,
 | 
			
		||||
				 <PINMUX_GPIO49__FUNC_SDA5>;
 | 
			
		||||
			mediatek,pull-up-adv = <3>;
 | 
			
		||||
| 
						 | 
				
			
			@ -584,7 +584,7 @@ pins_bus {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	i2c6_pins: i2c6 {
 | 
			
		||||
		pins_bus {
 | 
			
		||||
		pins-bus {
 | 
			
		||||
			pinmux = <PINMUX_GPIO11__FUNC_SCL6>,
 | 
			
		||||
				 <PINMUX_GPIO12__FUNC_SDA6>;
 | 
			
		||||
			bias-disable;
 | 
			
		||||
| 
						 | 
				
			
			@ -592,7 +592,7 @@ pins_bus {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	mmc0_pins_default: mmc0-pins-default {
 | 
			
		||||
		pins_cmd_dat {
 | 
			
		||||
		pins-cmd-dat {
 | 
			
		||||
			pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
 | 
			
		||||
				 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
 | 
			
		||||
				 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
 | 
			
		||||
| 
						 | 
				
			
			@ -607,13 +607,13 @@ pins_cmd_dat {
 | 
			
		|||
			mediatek,pull-up-adv = <01>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pins_clk {
 | 
			
		||||
		pins-clk {
 | 
			
		||||
			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
 | 
			
		||||
			drive-strength = <MTK_DRIVE_14mA>;
 | 
			
		||||
			mediatek,pull-down-adv = <10>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pins_rst {
 | 
			
		||||
		pins-rst {
 | 
			
		||||
			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
 | 
			
		||||
			drive-strength = <MTK_DRIVE_14mA>;
 | 
			
		||||
			mediatek,pull-down-adv = <01>;
 | 
			
		||||
| 
						 | 
				
			
			@ -621,7 +621,7 @@ pins_rst {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	mmc0_pins_uhs: mmc0-pins-uhs {
 | 
			
		||||
		pins_cmd_dat {
 | 
			
		||||
		pins-cmd-dat {
 | 
			
		||||
			pinmux = <PINMUX_GPIO123__FUNC_MSDC0_DAT0>,
 | 
			
		||||
				 <PINMUX_GPIO128__FUNC_MSDC0_DAT1>,
 | 
			
		||||
				 <PINMUX_GPIO125__FUNC_MSDC0_DAT2>,
 | 
			
		||||
| 
						 | 
				
			
			@ -636,19 +636,19 @@ pins_cmd_dat {
 | 
			
		|||
			mediatek,pull-up-adv = <01>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pins_clk {
 | 
			
		||||
		pins-clk {
 | 
			
		||||
			pinmux = <PINMUX_GPIO124__FUNC_MSDC0_CLK>;
 | 
			
		||||
			drive-strength = <MTK_DRIVE_14mA>;
 | 
			
		||||
			mediatek,pull-down-adv = <10>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pins_ds {
 | 
			
		||||
		pins-ds {
 | 
			
		||||
			pinmux = <PINMUX_GPIO131__FUNC_MSDC0_DSL>;
 | 
			
		||||
			drive-strength = <MTK_DRIVE_14mA>;
 | 
			
		||||
			mediatek,pull-down-adv = <10>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pins_rst {
 | 
			
		||||
		pins-rst {
 | 
			
		||||
			pinmux = <PINMUX_GPIO133__FUNC_MSDC0_RSTB>;
 | 
			
		||||
			drive-strength = <MTK_DRIVE_14mA>;
 | 
			
		||||
			mediatek,pull-up-adv = <01>;
 | 
			
		||||
| 
						 | 
				
			
			@ -656,7 +656,7 @@ pins_rst {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	mmc1_pins_default: mmc1-pins-default {
 | 
			
		||||
		pins_cmd_dat {
 | 
			
		||||
		pins-cmd-dat {
 | 
			
		||||
			pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
 | 
			
		||||
				 <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
 | 
			
		||||
				 <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
 | 
			
		||||
| 
						 | 
				
			
			@ -666,7 +666,7 @@ pins_cmd_dat {
 | 
			
		|||
			mediatek,pull-up-adv = <10>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pins_clk {
 | 
			
		||||
		pins-clk {
 | 
			
		||||
			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
 | 
			
		||||
			input-enable;
 | 
			
		||||
			mediatek,pull-down-adv = <10>;
 | 
			
		||||
| 
						 | 
				
			
			@ -674,7 +674,7 @@ pins_clk {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	mmc1_pins_uhs: mmc1-pins-uhs {
 | 
			
		||||
		pins_cmd_dat {
 | 
			
		||||
		pins-cmd-dat {
 | 
			
		||||
			pinmux = <PINMUX_GPIO31__FUNC_MSDC1_CMD>,
 | 
			
		||||
				 <PINMUX_GPIO32__FUNC_MSDC1_DAT0>,
 | 
			
		||||
				 <PINMUX_GPIO34__FUNC_MSDC1_DAT1>,
 | 
			
		||||
| 
						 | 
				
			
			@ -685,7 +685,7 @@ pins_cmd_dat {
 | 
			
		|||
			mediatek,pull-up-adv = <10>;
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pins_clk {
 | 
			
		||||
		pins-clk {
 | 
			
		||||
			pinmux = <PINMUX_GPIO29__FUNC_MSDC1_CLK>;
 | 
			
		||||
			drive-strength = <MTK_DRIVE_8mA>;
 | 
			
		||||
			mediatek,pull-down-adv = <10>;
 | 
			
		||||
| 
						 | 
				
			
			@ -693,15 +693,15 @@ pins_clk {
 | 
			
		|||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	panel_pins_default: panel_pins_default {
 | 
			
		||||
		panel_reset {
 | 
			
		||||
	panel_pins_default: panel-pins-default {
 | 
			
		||||
		panel-reset {
 | 
			
		||||
			pinmux = <PINMUX_GPIO45__FUNC_GPIO45>;
 | 
			
		||||
			output-low;
 | 
			
		||||
			bias-pull-up;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	pwm0_pin_default: pwm0_pin_default {
 | 
			
		||||
	pwm0_pin_default: pwm0-pin-default {
 | 
			
		||||
		pins1 {
 | 
			
		||||
			pinmux = <PINMUX_GPIO176__FUNC_GPIO176>;
 | 
			
		||||
			output-high;
 | 
			
		||||
| 
						 | 
				
			
			@ -713,14 +713,14 @@ pins2 {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	scp_pins: scp {
 | 
			
		||||
		pins_scp_uart {
 | 
			
		||||
		pins-scp-uart {
 | 
			
		||||
			pinmux = <PINMUX_GPIO110__FUNC_TP_URXD1_AO>,
 | 
			
		||||
				 <PINMUX_GPIO112__FUNC_TP_UTXD1_AO>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	spi0_pins: spi0 {
 | 
			
		||||
		pins_spi {
 | 
			
		||||
		pins-spi {
 | 
			
		||||
			pinmux = <PINMUX_GPIO85__FUNC_SPI0_MI>,
 | 
			
		||||
				 <PINMUX_GPIO86__FUNC_GPIO86>,
 | 
			
		||||
				 <PINMUX_GPIO87__FUNC_SPI0_MO>,
 | 
			
		||||
| 
						 | 
				
			
			@ -730,7 +730,7 @@ pins_spi {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	spi1_pins: spi1 {
 | 
			
		||||
		pins_spi {
 | 
			
		||||
		pins-spi {
 | 
			
		||||
			pinmux = <PINMUX_GPIO161__FUNC_SPI1_A_MI>,
 | 
			
		||||
				 <PINMUX_GPIO162__FUNC_SPI1_A_CSB>,
 | 
			
		||||
				 <PINMUX_GPIO163__FUNC_SPI1_A_MO>,
 | 
			
		||||
| 
						 | 
				
			
			@ -740,20 +740,20 @@ pins_spi {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	spi2_pins: spi2 {
 | 
			
		||||
		pins_spi {
 | 
			
		||||
		pins-spi {
 | 
			
		||||
			pinmux = <PINMUX_GPIO0__FUNC_SPI2_CSB>,
 | 
			
		||||
				 <PINMUX_GPIO1__FUNC_SPI2_MO>,
 | 
			
		||||
				 <PINMUX_GPIO2__FUNC_SPI2_CLK>;
 | 
			
		||||
			bias-disable;
 | 
			
		||||
		};
 | 
			
		||||
		pins_spi_mi {
 | 
			
		||||
		pins-spi-mi {
 | 
			
		||||
			pinmux = <PINMUX_GPIO94__FUNC_SPI2_MI>;
 | 
			
		||||
			mediatek,pull-down-adv = <00>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	spi3_pins: spi3 {
 | 
			
		||||
		pins_spi {
 | 
			
		||||
		pins-spi {
 | 
			
		||||
			pinmux = <PINMUX_GPIO21__FUNC_SPI3_MI>,
 | 
			
		||||
				 <PINMUX_GPIO22__FUNC_SPI3_CSB>,
 | 
			
		||||
				 <PINMUX_GPIO23__FUNC_SPI3_MO>,
 | 
			
		||||
| 
						 | 
				
			
			@ -763,7 +763,7 @@ pins_spi {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	spi4_pins: spi4 {
 | 
			
		||||
		pins_spi {
 | 
			
		||||
		pins-spi {
 | 
			
		||||
			pinmux = <PINMUX_GPIO17__FUNC_SPI4_MI>,
 | 
			
		||||
				 <PINMUX_GPIO18__FUNC_SPI4_CSB>,
 | 
			
		||||
				 <PINMUX_GPIO19__FUNC_SPI4_MO>,
 | 
			
		||||
| 
						 | 
				
			
			@ -773,7 +773,7 @@ pins_spi {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	spi5_pins: spi5 {
 | 
			
		||||
		pins_spi {
 | 
			
		||||
		pins-spi {
 | 
			
		||||
			pinmux = <PINMUX_GPIO13__FUNC_SPI5_MI>,
 | 
			
		||||
				 <PINMUX_GPIO14__FUNC_SPI5_CSB>,
 | 
			
		||||
				 <PINMUX_GPIO15__FUNC_SPI5_MO>,
 | 
			
		||||
| 
						 | 
				
			
			@ -783,63 +783,63 @@ pins_spi {
 | 
			
		|||
	};
 | 
			
		||||
 | 
			
		||||
	uart0_pins_default: uart0-pins-default {
 | 
			
		||||
		pins_rx {
 | 
			
		||||
		pins-rx {
 | 
			
		||||
			pinmux = <PINMUX_GPIO95__FUNC_URXD0>;
 | 
			
		||||
			input-enable;
 | 
			
		||||
			bias-pull-up;
 | 
			
		||||
		};
 | 
			
		||||
		pins_tx {
 | 
			
		||||
		pins-tx {
 | 
			
		||||
			pinmux = <PINMUX_GPIO96__FUNC_UTXD0>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	uart1_pins_default: uart1-pins-default {
 | 
			
		||||
		pins_rx {
 | 
			
		||||
		pins-rx {
 | 
			
		||||
			pinmux = <PINMUX_GPIO121__FUNC_URXD1>;
 | 
			
		||||
			input-enable;
 | 
			
		||||
			bias-pull-up;
 | 
			
		||||
		};
 | 
			
		||||
		pins_tx {
 | 
			
		||||
		pins-tx {
 | 
			
		||||
			pinmux = <PINMUX_GPIO115__FUNC_UTXD1>;
 | 
			
		||||
		};
 | 
			
		||||
		pins_rts {
 | 
			
		||||
		pins-rts {
 | 
			
		||||
			pinmux = <PINMUX_GPIO47__FUNC_URTS1>;
 | 
			
		||||
			output-enable;
 | 
			
		||||
		};
 | 
			
		||||
		pins_cts {
 | 
			
		||||
		pins-cts {
 | 
			
		||||
			pinmux = <PINMUX_GPIO46__FUNC_UCTS1>;
 | 
			
		||||
			input-enable;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	uart1_pins_sleep: uart1-pins-sleep {
 | 
			
		||||
		pins_rx {
 | 
			
		||||
		pins-rx {
 | 
			
		||||
			pinmux = <PINMUX_GPIO121__FUNC_GPIO121>;
 | 
			
		||||
			input-enable;
 | 
			
		||||
			bias-pull-up;
 | 
			
		||||
		};
 | 
			
		||||
		pins_tx {
 | 
			
		||||
		pins-tx {
 | 
			
		||||
			pinmux = <PINMUX_GPIO115__FUNC_UTXD1>;
 | 
			
		||||
		};
 | 
			
		||||
		pins_rts {
 | 
			
		||||
		pins-rts {
 | 
			
		||||
			pinmux = <PINMUX_GPIO47__FUNC_URTS1>;
 | 
			
		||||
			output-enable;
 | 
			
		||||
		};
 | 
			
		||||
		pins_cts {
 | 
			
		||||
		pins-cts {
 | 
			
		||||
			pinmux = <PINMUX_GPIO46__FUNC_UCTS1>;
 | 
			
		||||
			input-enable;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi_pins_pwrseq: wifi-pins-pwrseq {
 | 
			
		||||
		pins_wifi_enable {
 | 
			
		||||
		pins-wifi-enable {
 | 
			
		||||
			pinmux = <PINMUX_GPIO119__FUNC_GPIO119>;
 | 
			
		||||
			output-low;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	wifi_pins_wakeup: wifi-pins-wakeup {
 | 
			
		||||
		pins_wifi_wakeup {
 | 
			
		||||
		pins-wifi-wakeup {
 | 
			
		||||
			pinmux = <PINMUX_GPIO113__FUNC_GPIO113>;
 | 
			
		||||
			input-enable;
 | 
			
		||||
		};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1210,127 +1210,6 @@ thermal: thermal@1100b000 {
 | 
			
		|||
			nvmem-cell-names = "calibration-data";
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		thermal_zones: thermal-zones {
 | 
			
		||||
			cpu_thermal: cpu-thermal {
 | 
			
		||||
				polling-delay-passive = <100>;
 | 
			
		||||
				polling-delay = <500>;
 | 
			
		||||
				thermal-sensors = <&thermal 0>;
 | 
			
		||||
				sustainable-power = <5000>;
 | 
			
		||||
 | 
			
		||||
				trips {
 | 
			
		||||
					threshold: trip-point0 {
 | 
			
		||||
						temperature = <68000>;
 | 
			
		||||
						hysteresis = <2000>;
 | 
			
		||||
						type = "passive";
 | 
			
		||||
					};
 | 
			
		||||
 | 
			
		||||
					target: trip-point1 {
 | 
			
		||||
						temperature = <80000>;
 | 
			
		||||
						hysteresis = <2000>;
 | 
			
		||||
						type = "passive";
 | 
			
		||||
					};
 | 
			
		||||
 | 
			
		||||
					cpu_crit: cpu-crit {
 | 
			
		||||
						temperature = <115000>;
 | 
			
		||||
						hysteresis = <2000>;
 | 
			
		||||
						type = "critical";
 | 
			
		||||
					};
 | 
			
		||||
				};
 | 
			
		||||
 | 
			
		||||
				cooling-maps {
 | 
			
		||||
					map0 {
 | 
			
		||||
						trip = <&target>;
 | 
			
		||||
						cooling-device = <&cpu0
 | 
			
		||||
							THERMAL_NO_LIMIT
 | 
			
		||||
							THERMAL_NO_LIMIT>,
 | 
			
		||||
								 <&cpu1
 | 
			
		||||
							THERMAL_NO_LIMIT
 | 
			
		||||
							THERMAL_NO_LIMIT>,
 | 
			
		||||
								 <&cpu2
 | 
			
		||||
							THERMAL_NO_LIMIT
 | 
			
		||||
							THERMAL_NO_LIMIT>,
 | 
			
		||||
								 <&cpu3
 | 
			
		||||
							THERMAL_NO_LIMIT
 | 
			
		||||
							THERMAL_NO_LIMIT>;
 | 
			
		||||
						contribution = <3072>;
 | 
			
		||||
					};
 | 
			
		||||
					map1 {
 | 
			
		||||
						trip = <&target>;
 | 
			
		||||
						cooling-device = <&cpu4
 | 
			
		||||
							THERMAL_NO_LIMIT
 | 
			
		||||
							THERMAL_NO_LIMIT>,
 | 
			
		||||
								 <&cpu5
 | 
			
		||||
							THERMAL_NO_LIMIT
 | 
			
		||||
							THERMAL_NO_LIMIT>,
 | 
			
		||||
								 <&cpu6
 | 
			
		||||
							THERMAL_NO_LIMIT
 | 
			
		||||
							THERMAL_NO_LIMIT>,
 | 
			
		||||
								 <&cpu7
 | 
			
		||||
							THERMAL_NO_LIMIT
 | 
			
		||||
							THERMAL_NO_LIMIT>;
 | 
			
		||||
						contribution = <1024>;
 | 
			
		||||
					};
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			/* The tzts1 ~ tzts6 don't need to polling */
 | 
			
		||||
			/* The tzts1 ~ tzts6 don't need to thermal throttle */
 | 
			
		||||
 | 
			
		||||
			tzts1: tzts1 {
 | 
			
		||||
				polling-delay-passive = <0>;
 | 
			
		||||
				polling-delay = <0>;
 | 
			
		||||
				thermal-sensors = <&thermal 1>;
 | 
			
		||||
				sustainable-power = <5000>;
 | 
			
		||||
				trips {};
 | 
			
		||||
				cooling-maps {};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			tzts2: tzts2 {
 | 
			
		||||
				polling-delay-passive = <0>;
 | 
			
		||||
				polling-delay = <0>;
 | 
			
		||||
				thermal-sensors = <&thermal 2>;
 | 
			
		||||
				sustainable-power = <5000>;
 | 
			
		||||
				trips {};
 | 
			
		||||
				cooling-maps {};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			tzts3: tzts3 {
 | 
			
		||||
				polling-delay-passive = <0>;
 | 
			
		||||
				polling-delay = <0>;
 | 
			
		||||
				thermal-sensors = <&thermal 3>;
 | 
			
		||||
				sustainable-power = <5000>;
 | 
			
		||||
				trips {};
 | 
			
		||||
				cooling-maps {};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			tzts4: tzts4 {
 | 
			
		||||
				polling-delay-passive = <0>;
 | 
			
		||||
				polling-delay = <0>;
 | 
			
		||||
				thermal-sensors = <&thermal 4>;
 | 
			
		||||
				sustainable-power = <5000>;
 | 
			
		||||
				trips {};
 | 
			
		||||
				cooling-maps {};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			tzts5: tzts5 {
 | 
			
		||||
				polling-delay-passive = <0>;
 | 
			
		||||
				polling-delay = <0>;
 | 
			
		||||
				thermal-sensors = <&thermal 5>;
 | 
			
		||||
				sustainable-power = <5000>;
 | 
			
		||||
				trips {};
 | 
			
		||||
				cooling-maps {};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			tztsABB: tztsABB {
 | 
			
		||||
				polling-delay-passive = <0>;
 | 
			
		||||
				polling-delay = <0>;
 | 
			
		||||
				thermal-sensors = <&thermal 6>;
 | 
			
		||||
				sustainable-power = <5000>;
 | 
			
		||||
				trips {};
 | 
			
		||||
				cooling-maps {};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		pwm0: pwm@1100e000 {
 | 
			
		||||
			compatible = "mediatek,mt8183-disp-pwm";
 | 
			
		||||
			reg = <0 0x1100e000 0 0x1000>;
 | 
			
		||||
| 
						 | 
				
			
			@ -2105,4 +1984,125 @@ larb3: larb@1a002000 {
 | 
			
		|||
			power-domains = <&spm MT8183_POWER_DOMAIN_CAM>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	thermal_zones: thermal-zones {
 | 
			
		||||
		cpu_thermal: cpu-thermal {
 | 
			
		||||
			polling-delay-passive = <100>;
 | 
			
		||||
			polling-delay = <500>;
 | 
			
		||||
			thermal-sensors = <&thermal 0>;
 | 
			
		||||
			sustainable-power = <5000>;
 | 
			
		||||
 | 
			
		||||
			trips {
 | 
			
		||||
				threshold: trip-point0 {
 | 
			
		||||
					temperature = <68000>;
 | 
			
		||||
					hysteresis = <2000>;
 | 
			
		||||
					type = "passive";
 | 
			
		||||
				};
 | 
			
		||||
 | 
			
		||||
				target: trip-point1 {
 | 
			
		||||
					temperature = <80000>;
 | 
			
		||||
					hysteresis = <2000>;
 | 
			
		||||
					type = "passive";
 | 
			
		||||
				};
 | 
			
		||||
 | 
			
		||||
				cpu_crit: cpu-crit {
 | 
			
		||||
					temperature = <115000>;
 | 
			
		||||
					hysteresis = <2000>;
 | 
			
		||||
					type = "critical";
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			cooling-maps {
 | 
			
		||||
				map0 {
 | 
			
		||||
					trip = <&target>;
 | 
			
		||||
					cooling-device = <&cpu0
 | 
			
		||||
						THERMAL_NO_LIMIT
 | 
			
		||||
						THERMAL_NO_LIMIT>,
 | 
			
		||||
							 <&cpu1
 | 
			
		||||
						THERMAL_NO_LIMIT
 | 
			
		||||
						THERMAL_NO_LIMIT>,
 | 
			
		||||
							 <&cpu2
 | 
			
		||||
						THERMAL_NO_LIMIT
 | 
			
		||||
						THERMAL_NO_LIMIT>,
 | 
			
		||||
							 <&cpu3
 | 
			
		||||
						THERMAL_NO_LIMIT
 | 
			
		||||
						THERMAL_NO_LIMIT>;
 | 
			
		||||
					contribution = <3072>;
 | 
			
		||||
				};
 | 
			
		||||
				map1 {
 | 
			
		||||
					trip = <&target>;
 | 
			
		||||
					cooling-device = <&cpu4
 | 
			
		||||
						THERMAL_NO_LIMIT
 | 
			
		||||
						THERMAL_NO_LIMIT>,
 | 
			
		||||
							 <&cpu5
 | 
			
		||||
						THERMAL_NO_LIMIT
 | 
			
		||||
						THERMAL_NO_LIMIT>,
 | 
			
		||||
							 <&cpu6
 | 
			
		||||
						THERMAL_NO_LIMIT
 | 
			
		||||
						THERMAL_NO_LIMIT>,
 | 
			
		||||
							 <&cpu7
 | 
			
		||||
						THERMAL_NO_LIMIT
 | 
			
		||||
						THERMAL_NO_LIMIT>;
 | 
			
		||||
					contribution = <1024>;
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		/* The tzts1 ~ tzts6 don't need to polling */
 | 
			
		||||
		/* The tzts1 ~ tzts6 don't need to thermal throttle */
 | 
			
		||||
 | 
			
		||||
		tzts1: tzts1 {
 | 
			
		||||
			polling-delay-passive = <0>;
 | 
			
		||||
			polling-delay = <0>;
 | 
			
		||||
			thermal-sensors = <&thermal 1>;
 | 
			
		||||
			sustainable-power = <5000>;
 | 
			
		||||
			trips {};
 | 
			
		||||
			cooling-maps {};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		tzts2: tzts2 {
 | 
			
		||||
			polling-delay-passive = <0>;
 | 
			
		||||
			polling-delay = <0>;
 | 
			
		||||
			thermal-sensors = <&thermal 2>;
 | 
			
		||||
			sustainable-power = <5000>;
 | 
			
		||||
			trips {};
 | 
			
		||||
			cooling-maps {};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		tzts3: tzts3 {
 | 
			
		||||
			polling-delay-passive = <0>;
 | 
			
		||||
			polling-delay = <0>;
 | 
			
		||||
			thermal-sensors = <&thermal 3>;
 | 
			
		||||
			sustainable-power = <5000>;
 | 
			
		||||
			trips {};
 | 
			
		||||
			cooling-maps {};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		tzts4: tzts4 {
 | 
			
		||||
			polling-delay-passive = <0>;
 | 
			
		||||
			polling-delay = <0>;
 | 
			
		||||
			thermal-sensors = <&thermal 4>;
 | 
			
		||||
			sustainable-power = <5000>;
 | 
			
		||||
			trips {};
 | 
			
		||||
			cooling-maps {};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		tzts5: tzts5 {
 | 
			
		||||
			polling-delay-passive = <0>;
 | 
			
		||||
			polling-delay = <0>;
 | 
			
		||||
			thermal-sensors = <&thermal 5>;
 | 
			
		||||
			sustainable-power = <5000>;
 | 
			
		||||
			trips {};
 | 
			
		||||
			cooling-maps {};
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		tztsABB: tztsABB {
 | 
			
		||||
			polling-delay-passive = <0>;
 | 
			
		||||
			polling-delay = <0>;
 | 
			
		||||
			thermal-sensors = <&thermal 6>;
 | 
			
		||||
			sustainable-power = <5000>;
 | 
			
		||||
			trips {};
 | 
			
		||||
			cooling-maps {};
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -924,7 +924,8 @@ power-domain@MT8186_POWER_DOMAIN_CSIRX_TOP {
 | 
			
		|||
					reg = <MT8186_POWER_DOMAIN_CSIRX_TOP>;
 | 
			
		||||
					clocks = <&topckgen CLK_TOP_SENINF>,
 | 
			
		||||
						 <&topckgen CLK_TOP_SENINF1>;
 | 
			
		||||
					clock-names = "csirx_top0", "csirx_top1";
 | 
			
		||||
					clock-names = "subsys-csirx-top0",
 | 
			
		||||
						      "subsys-csirx-top1";
 | 
			
		||||
					#power-domain-cells = <0>;
 | 
			
		||||
				};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -942,7 +943,8 @@ power-domain@MT8186_POWER_DOMAIN_ADSP_AO {
 | 
			
		|||
					reg = <MT8186_POWER_DOMAIN_ADSP_AO>;
 | 
			
		||||
					clocks = <&topckgen CLK_TOP_AUDIODSP>,
 | 
			
		||||
						 <&topckgen CLK_TOP_ADSP_BUS>;
 | 
			
		||||
					clock-names = "audioadsp", "adsp_bus";
 | 
			
		||||
					clock-names = "audioadsp",
 | 
			
		||||
						      "subsys-adsp-bus";
 | 
			
		||||
					#address-cells = <1>;
 | 
			
		||||
					#size-cells = <0>;
 | 
			
		||||
					#power-domain-cells = <1>;
 | 
			
		||||
| 
						 | 
				
			
			@ -975,8 +977,11 @@ power-domain@MT8186_POWER_DOMAIN_DIS {
 | 
			
		|||
						 <&mmsys CLK_MM_SMI_COMMON>,
 | 
			
		||||
						 <&mmsys CLK_MM_SMI_GALS>,
 | 
			
		||||
						 <&mmsys CLK_MM_SMI_IOMMU>;
 | 
			
		||||
					clock-names = "disp", "mdp", "smi_infra", "smi_common",
 | 
			
		||||
						     "smi_gals", "smi_iommu";
 | 
			
		||||
					clock-names = "disp", "mdp",
 | 
			
		||||
						      "subsys-smi-infra",
 | 
			
		||||
						      "subsys-smi-common",
 | 
			
		||||
						      "subsys-smi-gals",
 | 
			
		||||
						      "subsys-smi-iommu";
 | 
			
		||||
					mediatek,infracfg = <&infracfg_ao>;
 | 
			
		||||
					#address-cells = <1>;
 | 
			
		||||
					#size-cells = <0>;
 | 
			
		||||
| 
						 | 
				
			
			@ -993,15 +998,17 @@ power-domain@MT8186_POWER_DOMAIN_VDEC {
 | 
			
		|||
 | 
			
		||||
					power-domain@MT8186_POWER_DOMAIN_CAM {
 | 
			
		||||
						reg = <MT8186_POWER_DOMAIN_CAM>;
 | 
			
		||||
						clocks = <&topckgen CLK_TOP_CAM>,
 | 
			
		||||
							 <&topckgen CLK_TOP_SENINF>,
 | 
			
		||||
						clocks = <&topckgen CLK_TOP_SENINF>,
 | 
			
		||||
							 <&topckgen CLK_TOP_SENINF1>,
 | 
			
		||||
							 <&topckgen CLK_TOP_SENINF2>,
 | 
			
		||||
							 <&topckgen CLK_TOP_SENINF3>,
 | 
			
		||||
							 <&camsys CLK_CAM2MM_GALS>,
 | 
			
		||||
							 <&topckgen CLK_TOP_CAMTM>,
 | 
			
		||||
							 <&camsys CLK_CAM2MM_GALS>;
 | 
			
		||||
						clock-names = "cam-top", "cam0", "cam1", "cam2",
 | 
			
		||||
							     "cam3", "cam-tm", "gals";
 | 
			
		||||
							 <&topckgen CLK_TOP_CAM>;
 | 
			
		||||
						clock-names = "cam0", "cam1", "cam2",
 | 
			
		||||
							      "cam3", "gals",
 | 
			
		||||
							      "subsys-cam-tm",
 | 
			
		||||
							      "subsys-cam-top";
 | 
			
		||||
						mediatek,infracfg = <&infracfg_ao>;
 | 
			
		||||
						#address-cells = <1>;
 | 
			
		||||
						#size-cells = <0>;
 | 
			
		||||
| 
						 | 
				
			
			@ -1020,9 +1027,9 @@ power-domain@MT8186_POWER_DOMAIN_CAM_RAWA {
 | 
			
		|||
 | 
			
		||||
					power-domain@MT8186_POWER_DOMAIN_IMG {
 | 
			
		||||
						reg = <MT8186_POWER_DOMAIN_IMG>;
 | 
			
		||||
						clocks = <&topckgen CLK_TOP_IMG1>,
 | 
			
		||||
							 <&imgsys1 CLK_IMG1_GALS_IMG1>;
 | 
			
		||||
						clock-names = "img-top", "gals";
 | 
			
		||||
						clocks = <&imgsys1 CLK_IMG1_GALS_IMG1>,
 | 
			
		||||
							 <&topckgen CLK_TOP_IMG1>;
 | 
			
		||||
						clock-names = "gals", "subsys-img-top";
 | 
			
		||||
						mediatek,infracfg = <&infracfg_ao>;
 | 
			
		||||
						#address-cells = <1>;
 | 
			
		||||
						#size-cells = <0>;
 | 
			
		||||
| 
						 | 
				
			
			@ -1041,8 +1048,11 @@ power-domain@MT8186_POWER_DOMAIN_IPE {
 | 
			
		|||
							 <&ipesys CLK_IPE_LARB20>,
 | 
			
		||||
							 <&ipesys CLK_IPE_SMI_SUBCOM>,
 | 
			
		||||
							 <&ipesys CLK_IPE_GALS_IPE>;
 | 
			
		||||
						clock-names = "ipe-top", "ipe-larb0", "ipe-larb1",
 | 
			
		||||
							      "ipe-smi", "ipe-gals";
 | 
			
		||||
						clock-names = "subsys-ipe-top",
 | 
			
		||||
							      "subsys-ipe-larb0",
 | 
			
		||||
							      "subsys-ipe-larb1",
 | 
			
		||||
							      "subsys-ipe-smi",
 | 
			
		||||
							      "subsys-ipe-gals";
 | 
			
		||||
						mediatek,infracfg = <&infracfg_ao>;
 | 
			
		||||
						#power-domain-cells = <0>;
 | 
			
		||||
					};
 | 
			
		||||
| 
						 | 
				
			
			@ -1061,7 +1071,9 @@ power-domain@MT8186_POWER_DOMAIN_WPE {
 | 
			
		|||
						clocks = <&topckgen CLK_TOP_WPE>,
 | 
			
		||||
							 <&wpesys CLK_WPE_SMI_LARB8_CK_EN>,
 | 
			
		||||
							 <&wpesys CLK_WPE_SMI_LARB8_PCLK_EN>;
 | 
			
		||||
						clock-names = "wpe0", "larb-ck", "larb-pclk";
 | 
			
		||||
						clock-names = "wpe0",
 | 
			
		||||
							      "subsys-larb-ck",
 | 
			
		||||
							      "subsys-larb-pclk";
 | 
			
		||||
						mediatek,infracfg = <&infracfg_ao>;
 | 
			
		||||
						#power-domain-cells = <0>;
 | 
			
		||||
					};
 | 
			
		||||
| 
						 | 
				
			
			@ -1656,7 +1668,7 @@ efuse: efuse@11cb0000 {
 | 
			
		|||
			#address-cells = <1>;
 | 
			
		||||
			#size-cells = <1>;
 | 
			
		||||
 | 
			
		||||
			gpu_speedbin: gpu-speed-bin@59c {
 | 
			
		||||
			gpu_speedbin: gpu-speedbin@59c {
 | 
			
		||||
				reg = <0x59c 0x4>;
 | 
			
		||||
				bits = <0 3>;
 | 
			
		||||
			};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -389,7 +389,7 @@ &i2c7 {
 | 
			
		|||
	pinctrl-0 = <&i2c7_pins>;
 | 
			
		||||
 | 
			
		||||
	pmic@34 {
 | 
			
		||||
		#interrupt-cells = <1>;
 | 
			
		||||
		#interrupt-cells = <2>;
 | 
			
		||||
		compatible = "mediatek,mt6360";
 | 
			
		||||
		reg = <0x34>;
 | 
			
		||||
		interrupt-controller;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -627,6 +627,8 @@ power-domain@MT8195_POWER_DOMAIN_VDEC1 {
 | 
			
		|||
 | 
			
		||||
					power-domain@MT8195_POWER_DOMAIN_VENC_CORE1 {
 | 
			
		||||
						reg = <MT8195_POWER_DOMAIN_VENC_CORE1>;
 | 
			
		||||
						clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>;
 | 
			
		||||
						clock-names = "venc1-larb";
 | 
			
		||||
						mediatek,infracfg = <&infracfg_ao>;
 | 
			
		||||
						#power-domain-cells = <0>;
 | 
			
		||||
					};
 | 
			
		||||
| 
						 | 
				
			
			@ -689,6 +691,8 @@ power-domain@MT8195_POWER_DOMAIN_VDEC2 {
 | 
			
		|||
 | 
			
		||||
						power-domain@MT8195_POWER_DOMAIN_VENC {
 | 
			
		||||
							reg = <MT8195_POWER_DOMAIN_VENC>;
 | 
			
		||||
							clocks = <&vencsys CLK_VENC_LARB>;
 | 
			
		||||
							clock-names = "venc0-larb";
 | 
			
		||||
							mediatek,infracfg = <&infracfg_ao>;
 | 
			
		||||
							#power-domain-cells = <0>;
 | 
			
		||||
						};
 | 
			
		||||
| 
						 | 
				
			
			@ -2665,7 +2669,7 @@ larb20: larb@1b010000 {
 | 
			
		|||
			reg = <0 0x1b010000 0 0x1000>;
 | 
			
		||||
			mediatek,larb-id = <20>;
 | 
			
		||||
			mediatek,smi = <&smi_common_vpp>;
 | 
			
		||||
			clocks = <&vencsys_core1 CLK_VENC_CORE1_LARB>,
 | 
			
		||||
			clocks = <&vencsys_core1 CLK_VENC_CORE1_VENC>,
 | 
			
		||||
				 <&vencsys_core1 CLK_VENC_CORE1_GALS>,
 | 
			
		||||
				 <&vppsys0 CLK_VPP0_GALS_VDO0_VDO1_VENCSYS_CORE1>;
 | 
			
		||||
			clock-names = "apb", "smi", "gals";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -86,7 +86,7 @@ simple-audio-card,cpu {
 | 
			
		|||
	sgtl5000_clk: sgtl5000-oscillator {
 | 
			
		||||
		compatible = "fixed-clock";
 | 
			
		||||
		#clock-cells = <0>;
 | 
			
		||||
		clock-frequency  = <24576000>;
 | 
			
		||||
		clock-frequency = <24576000>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	dc_12v: dc-12v-regulator {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -668,7 +668,7 @@ vpu_mmu: iommu@ff350800 {
 | 
			
		|||
 | 
			
		||||
	vdec: video-codec@ff360000 {
 | 
			
		||||
		compatible = "rockchip,rk3328-vdec", "rockchip,rk3399-vdec";
 | 
			
		||||
		reg = <0x0 0xff360000 0x0 0x400>;
 | 
			
		||||
		reg = <0x0 0xff360000 0x0 0x480>;
 | 
			
		||||
		interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
		clocks = <&cru ACLK_RKVDEC>, <&cru HCLK_RKVDEC>,
 | 
			
		||||
			 <&cru SCLK_VDEC_CABAC>, <&cru SCLK_VDEC_CORE>;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -509,8 +509,7 @@ wacky_spi_audio: spi2@0 {
 | 
			
		|||
&pci_rootport {
 | 
			
		||||
	mvl_wifi: wifi@0,0 {
 | 
			
		||||
		compatible = "pci1b4b,2b42";
 | 
			
		||||
		reg = <0x83010000 0x0 0x00000000 0x0 0x00100000
 | 
			
		||||
		       0x83010000 0x0 0x00100000 0x0 0x00100000>;
 | 
			
		||||
		reg = <0x0000 0x0 0x0 0x0 0x0>;
 | 
			
		||||
		interrupt-parent = <&gpio0>;
 | 
			
		||||
		interrupts = <8 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,8 +34,8 @@ &mipi_panel {
 | 
			
		|||
&pci_rootport {
 | 
			
		||||
	wifi@0,0 {
 | 
			
		||||
		compatible = "qcom,ath10k";
 | 
			
		||||
		reg = <0x00010000 0x0 0x00000000 0x0 0x00000000>,
 | 
			
		||||
		      <0x03010010 0x0 0x00000000 0x0 0x00200000>;
 | 
			
		||||
		reg = <0x00000000 0x0 0x00000000 0x0 0x00000000>,
 | 
			
		||||
		      <0x03000010 0x0 0x00000000 0x0 0x00200000>;
 | 
			
		||||
		qcom,ath10k-calibration-variant = "GO_DUMO";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -489,6 +489,7 @@ pci_rootport: pcie@0,0 {
 | 
			
		|||
		#address-cells = <3>;
 | 
			
		||||
		#size-cells = <2>;
 | 
			
		||||
		ranges;
 | 
			
		||||
		device_type = "pci";
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1109,7 +1109,9 @@ power-domain@RK3399_PD_VCODEC {
 | 
			
		|||
			power-domain@RK3399_PD_VDU {
 | 
			
		||||
				reg = <RK3399_PD_VDU>;
 | 
			
		||||
				clocks = <&cru ACLK_VDU>,
 | 
			
		||||
					 <&cru HCLK_VDU>;
 | 
			
		||||
					 <&cru HCLK_VDU>,
 | 
			
		||||
					 <&cru SCLK_VDU_CA>,
 | 
			
		||||
					 <&cru SCLK_VDU_CORE>;
 | 
			
		||||
				pm_qos = <&qos_video_m1_r>,
 | 
			
		||||
					 <&qos_video_m1_w>;
 | 
			
		||||
				#power-domain-cells = <0>;
 | 
			
		||||
| 
						 | 
				
			
			@ -1384,7 +1386,7 @@ vpu_mmu: iommu@ff650800 {
 | 
			
		|||
 | 
			
		||||
	vdec: video-codec@ff660000 {
 | 
			
		||||
		compatible = "rockchip,rk3399-vdec";
 | 
			
		||||
		reg = <0x0 0xff660000 0x0 0x400>;
 | 
			
		||||
		reg = <0x0 0xff660000 0x0 0x480>;
 | 
			
		||||
		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH 0>;
 | 
			
		||||
		clocks = <&cru ACLK_VDU>, <&cru HCLK_VDU>,
 | 
			
		||||
			 <&cru SCLK_VDU_CA>, <&cru SCLK_VDU_CORE>;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -977,7 +977,7 @@ pcie2x1: pcie@fe260000 {
 | 
			
		|||
			     <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>,
 | 
			
		||||
			     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
 | 
			
		||||
			     <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
 | 
			
		||||
		interrupt-names = "sys", "pmc", "msi", "legacy", "err";
 | 
			
		||||
		interrupt-names = "sys", "pmc", "msg", "legacy", "err";
 | 
			
		||||
		bus-range = <0x0 0xf>;
 | 
			
		||||
		clocks = <&cru ACLK_PCIE20_MST>, <&cru ACLK_PCIE20_SLV>,
 | 
			
		||||
			 <&cru ACLK_PCIE20_DBI>, <&cru PCLK_PCIE20>,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -235,13 +235,13 @@ &pcie3x4 {
 | 
			
		|||
&pinctrl {
 | 
			
		||||
	fan {
 | 
			
		||||
		fan_int: fan-int {
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	hym8563 {
 | 
			
		||||
		hym8563_int: hym8563-int {
 | 
			
		||||
			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
 | 
			
		||||
			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,7 +38,7 @@ button-recovery {
 | 
			
		|||
	leds {
 | 
			
		||||
		compatible = "gpio-leds";
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 =<&leds_gpio>;
 | 
			
		||||
		pinctrl-0 = <&leds_gpio>;
 | 
			
		||||
 | 
			
		||||
		led-1 {
 | 
			
		||||
			gpios = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -369,7 +369,7 @@ emmc_cmd: emmc-cmd {
 | 
			
		|||
		emmc_data_strobe: emmc-data-strobe {
 | 
			
		||||
			rockchip,pins =
 | 
			
		||||
				/* emmc_data_strobe */
 | 
			
		||||
				<2 RK_PA2 1 &pcfg_pull_none>;
 | 
			
		||||
				<2 RK_PA2 1 &pcfg_pull_down>;
 | 
			
		||||
		};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1362,7 +1362,6 @@ dfi: dfi@fe060000 {
 | 
			
		|||
			     <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH 0>,
 | 
			
		||||
			     <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH 0>,
 | 
			
		||||
			     <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH 0>;
 | 
			
		||||
		interrupt-names = "ch0", "ch1", "ch2", "ch3";
 | 
			
		||||
		rockchip,pmu = <&pmu1grf>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -21,9 +21,22 @@ static inline bool arch_parse_debug_rodata(char *arg)
 | 
			
		|||
	extern bool rodata_enabled;
 | 
			
		||||
	extern bool rodata_full;
 | 
			
		||||
 | 
			
		||||
	if (arg && !strcmp(arg, "full")) {
 | 
			
		||||
	if (!arg)
 | 
			
		||||
		return false;
 | 
			
		||||
 | 
			
		||||
	if (!strcmp(arg, "full")) {
 | 
			
		||||
		rodata_enabled = rodata_full = true;
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (!strcmp(arg, "off")) {
 | 
			
		||||
		rodata_enabled = rodata_full = false;
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (!strcmp(arg, "on")) {
 | 
			
		||||
		rodata_enabled = true;
 | 
			
		||||
		rodata_full = true;
 | 
			
		||||
		rodata_full = false;
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1839,6 +1839,10 @@ static int __init __kpti_install_ng_mappings(void *__unused)
 | 
			
		|||
 | 
			
		||||
static void __init kpti_install_ng_mappings(void)
 | 
			
		||||
{
 | 
			
		||||
	/* Check whether KPTI is going to be used */
 | 
			
		||||
	if (!cpus_have_cap(ARM64_UNMAP_KERNEL_AT_EL0))
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * We don't need to rewrite the page-tables if either we've done
 | 
			
		||||
	 * it already or we have KASLR enabled and therefore have not
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -436,6 +436,10 @@ int kvm_vgic_v4_set_forwarding(struct kvm *kvm, int virq,
 | 
			
		|||
	if (ret)
 | 
			
		||||
		goto out;
 | 
			
		||||
 | 
			
		||||
	/* Silently exit if the vLPI is already mapped */
 | 
			
		||||
	if (irq->hw)
 | 
			
		||||
		goto out;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * Emit the mapping request. If it fails, the ITS probably
 | 
			
		||||
	 * isn't v4 compatible, so let's silently bail out. Holding
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,8 +29,8 @@ bool can_set_direct_map(void)
 | 
			
		|||
	 *
 | 
			
		||||
	 * KFENCE pool requires page-granular mapping if initialized late.
 | 
			
		||||
	 */
 | 
			
		||||
	return (rodata_enabled && rodata_full) || debug_pagealloc_enabled() ||
 | 
			
		||||
		arm64_kfence_can_set_direct_map();
 | 
			
		||||
	return rodata_full || debug_pagealloc_enabled() ||
 | 
			
		||||
	       arm64_kfence_can_set_direct_map();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int change_page_range(pte_t *ptep, unsigned long addr, void *data)
 | 
			
		||||
| 
						 | 
				
			
			@ -105,8 +105,7 @@ static int change_memory_common(unsigned long addr, int numpages,
 | 
			
		|||
	 * If we are manipulating read-only permissions, apply the same
 | 
			
		||||
	 * change to the linear mapping of the pages that back this VM area.
 | 
			
		||||
	 */
 | 
			
		||||
	if (rodata_enabled &&
 | 
			
		||||
	    rodata_full && (pgprot_val(set_mask) == PTE_RDONLY ||
 | 
			
		||||
	if (rodata_full && (pgprot_val(set_mask) == PTE_RDONLY ||
 | 
			
		||||
			    pgprot_val(clear_mask) == PTE_RDONLY)) {
 | 
			
		||||
		for (i = 0; i < area->nr_pages; i++) {
 | 
			
		||||
			__change_memory_common((u64)page_address(area->pages[i]),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -68,6 +68,7 @@ LDFLAGS_vmlinux			+= -static -n -nostdlib
 | 
			
		|||
ifdef CONFIG_AS_HAS_EXPLICIT_RELOCS
 | 
			
		||||
cflags-y			+= $(call cc-option,-mexplicit-relocs)
 | 
			
		||||
KBUILD_CFLAGS_KERNEL		+= $(call cc-option,-mdirect-extern-access)
 | 
			
		||||
KBUILD_CFLAGS_KERNEL		+= $(call cc-option,-fdirect-access-external-data)
 | 
			
		||||
KBUILD_AFLAGS_MODULE		+= $(call cc-option,-fno-direct-access-external-data)
 | 
			
		||||
KBUILD_CFLAGS_MODULE		+= $(call cc-option,-fno-direct-access-external-data)
 | 
			
		||||
KBUILD_AFLAGS_MODULE		+= $(call cc-option,-mno-relax) $(call cc-option,-Wa$(comma)-mno-relax)
 | 
			
		||||
| 
						 | 
				
			
			@ -82,7 +83,7 @@ endif
 | 
			
		|||
 | 
			
		||||
ifeq ($(CONFIG_RELOCATABLE),y)
 | 
			
		||||
KBUILD_CFLAGS_KERNEL		+= -fPIE
 | 
			
		||||
LDFLAGS_vmlinux			+= -static -pie --no-dynamic-linker -z notext
 | 
			
		||||
LDFLAGS_vmlinux			+= -static -pie --no-dynamic-linker -z notext $(call ld-option, --apply-dynamic-relocs)
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
cflags-y += $(call cc-option, -mno-check-zero-division)
 | 
			
		||||
| 
						 | 
				
			
			@ -142,6 +143,8 @@ vdso-install-y += arch/loongarch/vdso/vdso.so.dbg
 | 
			
		|||
 | 
			
		||||
all:	$(notdir $(KBUILD_IMAGE))
 | 
			
		||||
 | 
			
		||||
vmlinuz.efi: vmlinux.efi
 | 
			
		||||
 | 
			
		||||
vmlinux.elf vmlinux.efi vmlinuz.efi: vmlinux
 | 
			
		||||
	$(Q)$(MAKE) $(build)=$(boot) $(bootvars-y) $(boot)/$@
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -609,8 +609,7 @@
 | 
			
		|||
	lu32i.d	\reg, 0
 | 
			
		||||
	lu52i.d	\reg, \reg, 0
 | 
			
		||||
	.pushsection ".la_abs", "aw", %progbits
 | 
			
		||||
	768:
 | 
			
		||||
	.dword	768b-766b
 | 
			
		||||
	.dword	766b
 | 
			
		||||
	.dword	\sym
 | 
			
		||||
	.popsection
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -293,7 +293,7 @@ extern const char *__elf_platform;
 | 
			
		|||
#define ELF_PLAT_INIT(_r, load_addr)	do { \
 | 
			
		||||
	_r->regs[1] = _r->regs[2] = _r->regs[3] = _r->regs[4] = 0;	\
 | 
			
		||||
	_r->regs[5] = _r->regs[6] = _r->regs[7] = _r->regs[8] = 0;	\
 | 
			
		||||
	_r->regs[9] = _r->regs[10] = _r->regs[11] = _r->regs[12] = 0;	\
 | 
			
		||||
	_r->regs[9] = _r->regs[10] /* syscall n */ = _r->regs[12] = 0;	\
 | 
			
		||||
	_r->regs[13] = _r->regs[14] = _r->regs[15] = _r->regs[16] = 0;	\
 | 
			
		||||
	_r->regs[17] = _r->regs[18] = _r->regs[19] = _r->regs[20] = 0;	\
 | 
			
		||||
	_r->regs[21] = _r->regs[22] = _r->regs[23] = _r->regs[24] = 0;	\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1098,12 +1098,11 @@
 | 
			
		|||
 | 
			
		||||
static __always_inline u64 drdtime(void)
 | 
			
		||||
{
 | 
			
		||||
	int rID = 0;
 | 
			
		||||
	u64 val = 0;
 | 
			
		||||
 | 
			
		||||
	__asm__ __volatile__(
 | 
			
		||||
		"rdtime.d %0, %1 \n\t"
 | 
			
		||||
		: "=r"(val), "=r"(rID)
 | 
			
		||||
		"rdtime.d %0, $zero\n\t"
 | 
			
		||||
		: "=r"(val)
 | 
			
		||||
		:
 | 
			
		||||
		);
 | 
			
		||||
	return val;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,13 +40,13 @@ static __always_inline unsigned long __percpu_##op(void *ptr,		\
 | 
			
		|||
	switch (size) {							\
 | 
			
		||||
	case 4:								\
 | 
			
		||||
		__asm__ __volatile__(					\
 | 
			
		||||
		"am"#asm_op".w"	" %[ret], %[val], %[ptr]	\n"		\
 | 
			
		||||
		"am"#asm_op".w"	" %[ret], %[val], %[ptr]	\n"	\
 | 
			
		||||
		: [ret] "=&r" (ret), [ptr] "+ZB"(*(u32 *)ptr)		\
 | 
			
		||||
		: [val] "r" (val));					\
 | 
			
		||||
		break;							\
 | 
			
		||||
	case 8:								\
 | 
			
		||||
		__asm__ __volatile__(					\
 | 
			
		||||
		"am"#asm_op".d" " %[ret], %[val], %[ptr]	\n"		\
 | 
			
		||||
		"am"#asm_op".d" " %[ret], %[val], %[ptr]	\n"	\
 | 
			
		||||
		: [ret] "=&r" (ret), [ptr] "+ZB"(*(u64 *)ptr)		\
 | 
			
		||||
		: [val] "r" (val));					\
 | 
			
		||||
		break;							\
 | 
			
		||||
| 
						 | 
				
			
			@ -63,7 +63,7 @@ PERCPU_OP(and, and, &)
 | 
			
		|||
PERCPU_OP(or, or, |)
 | 
			
		||||
#undef PERCPU_OP
 | 
			
		||||
 | 
			
		||||
static __always_inline unsigned long __percpu_read(void *ptr, int size)
 | 
			
		||||
static __always_inline unsigned long __percpu_read(void __percpu *ptr, int size)
 | 
			
		||||
{
 | 
			
		||||
	unsigned long ret;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -100,7 +100,7 @@ static __always_inline unsigned long __percpu_read(void *ptr, int size)
 | 
			
		|||
	return ret;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static __always_inline void __percpu_write(void *ptr, unsigned long val, int size)
 | 
			
		||||
static __always_inline void __percpu_write(void __percpu *ptr, unsigned long val, int size)
 | 
			
		||||
{
 | 
			
		||||
	switch (size) {
 | 
			
		||||
	case 1:
 | 
			
		||||
| 
						 | 
				
			
			@ -132,8 +132,7 @@ static __always_inline void __percpu_write(void *ptr, unsigned long val, int siz
 | 
			
		|||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static __always_inline unsigned long __percpu_xchg(void *ptr, unsigned long val,
 | 
			
		||||
						   int size)
 | 
			
		||||
static __always_inline unsigned long __percpu_xchg(void *ptr, unsigned long val, int size)
 | 
			
		||||
{
 | 
			
		||||
	switch (size) {
 | 
			
		||||
	case 1:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,7 +25,7 @@ extern void set_merr_handler(unsigned long offset, void *addr, unsigned long len
 | 
			
		|||
#ifdef CONFIG_RELOCATABLE
 | 
			
		||||
 | 
			
		||||
struct rela_la_abs {
 | 
			
		||||
	long offset;
 | 
			
		||||
	long pc;
 | 
			
		||||
	long symvalue;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -52,7 +52,7 @@ static inline void __init relocate_absolute(long random_offset)
 | 
			
		|||
	for (p = begin; (void *)p < end; p++) {
 | 
			
		||||
		long v = p->symvalue;
 | 
			
		||||
		uint32_t lu12iw, ori, lu32id, lu52id;
 | 
			
		||||
		union loongarch_instruction *insn = (void *)p - p->offset;
 | 
			
		||||
		union loongarch_instruction *insn = (void *)p->pc;
 | 
			
		||||
 | 
			
		||||
		lu12iw = (v >> 12) & 0xfffff;
 | 
			
		||||
		ori    = v & 0xfff;
 | 
			
		||||
| 
						 | 
				
			
			@ -102,6 +102,14 @@ static inline __init unsigned long get_random_boot(void)
 | 
			
		|||
	return hash;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int __init nokaslr(char *p)
 | 
			
		||||
{
 | 
			
		||||
	pr_info("KASLR is disabled.\n");
 | 
			
		||||
 | 
			
		||||
	return 0; /* Print a notice and silence the boot warning */
 | 
			
		||||
}
 | 
			
		||||
early_param("nokaslr", nokaslr);
 | 
			
		||||
 | 
			
		||||
static inline __init bool kaslr_disabled(void)
 | 
			
		||||
{
 | 
			
		||||
	char *str;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@ void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie,
 | 
			
		|||
	}
 | 
			
		||||
 | 
			
		||||
	for (unwind_start(&state, task, regs);
 | 
			
		||||
	     !unwind_done(&state) && !unwind_error(&state); unwind_next_frame(&state)) {
 | 
			
		||||
	     !unwind_done(&state); unwind_next_frame(&state)) {
 | 
			
		||||
		addr = unwind_get_return_address(&state);
 | 
			
		||||
		if (!addr || !consume_entry(cookie, addr))
 | 
			
		||||
			break;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -58,21 +58,6 @@ static int constant_set_state_oneshot(struct clock_event_device *evt)
 | 
			
		|||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int constant_set_state_oneshot_stopped(struct clock_event_device *evt)
 | 
			
		||||
{
 | 
			
		||||
	unsigned long timer_config;
 | 
			
		||||
 | 
			
		||||
	raw_spin_lock(&state_lock);
 | 
			
		||||
 | 
			
		||||
	timer_config = csr_read64(LOONGARCH_CSR_TCFG);
 | 
			
		||||
	timer_config &= ~CSR_TCFG_EN;
 | 
			
		||||
	csr_write64(timer_config, LOONGARCH_CSR_TCFG);
 | 
			
		||||
 | 
			
		||||
	raw_spin_unlock(&state_lock);
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static int constant_set_state_periodic(struct clock_event_device *evt)
 | 
			
		||||
{
 | 
			
		||||
	unsigned long period;
 | 
			
		||||
| 
						 | 
				
			
			@ -92,6 +77,16 @@ static int constant_set_state_periodic(struct clock_event_device *evt)
 | 
			
		|||
 | 
			
		||||
static int constant_set_state_shutdown(struct clock_event_device *evt)
 | 
			
		||||
{
 | 
			
		||||
	unsigned long timer_config;
 | 
			
		||||
 | 
			
		||||
	raw_spin_lock(&state_lock);
 | 
			
		||||
 | 
			
		||||
	timer_config = csr_read64(LOONGARCH_CSR_TCFG);
 | 
			
		||||
	timer_config &= ~CSR_TCFG_EN;
 | 
			
		||||
	csr_write64(timer_config, LOONGARCH_CSR_TCFG);
 | 
			
		||||
 | 
			
		||||
	raw_spin_unlock(&state_lock);
 | 
			
		||||
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -161,7 +156,7 @@ int constant_clockevent_init(void)
 | 
			
		|||
	cd->rating = 320;
 | 
			
		||||
	cd->cpumask = cpumask_of(cpu);
 | 
			
		||||
	cd->set_state_oneshot = constant_set_state_oneshot;
 | 
			
		||||
	cd->set_state_oneshot_stopped = constant_set_state_oneshot_stopped;
 | 
			
		||||
	cd->set_state_oneshot_stopped = constant_set_state_shutdown;
 | 
			
		||||
	cd->set_state_periodic = constant_set_state_periodic;
 | 
			
		||||
	cd->set_state_shutdown = constant_set_state_shutdown;
 | 
			
		||||
	cd->set_next_event = constant_timer_next_event;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,6 +28,5 @@ bool default_next_frame(struct unwind_state *state)
 | 
			
		|||
 | 
			
		||||
	} while (!get_stack_info(state->sp, state->task, info));
 | 
			
		||||
 | 
			
		||||
	state->error = true;
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -227,7 +227,7 @@ static bool next_frame(struct unwind_state *state)
 | 
			
		|||
	} while (!get_stack_info(state->sp, state->task, info));
 | 
			
		||||
 | 
			
		||||
out:
 | 
			
		||||
	state->error = true;
 | 
			
		||||
	state->stack_info.type = STACK_TYPE_UNKNOWN;
 | 
			
		||||
	return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,13 +13,13 @@ struct page *dmw_virt_to_page(unsigned long kaddr)
 | 
			
		|||
{
 | 
			
		||||
	return pfn_to_page(virt_to_pfn(kaddr));
 | 
			
		||||
}
 | 
			
		||||
EXPORT_SYMBOL_GPL(dmw_virt_to_page);
 | 
			
		||||
EXPORT_SYMBOL(dmw_virt_to_page);
 | 
			
		||||
 | 
			
		||||
struct page *tlb_virt_to_page(unsigned long kaddr)
 | 
			
		||||
{
 | 
			
		||||
	return pfn_to_page(pte_pfn(*virt_to_kpte(kaddr)));
 | 
			
		||||
}
 | 
			
		||||
EXPORT_SYMBOL_GPL(tlb_virt_to_page);
 | 
			
		||||
EXPORT_SYMBOL(tlb_virt_to_page);
 | 
			
		||||
 | 
			
		||||
pgd_t *pgd_alloc(struct mm_struct *mm)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -480,10 +480,12 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, bool ext
 | 
			
		|||
		case 8:
 | 
			
		||||
			move_reg(ctx, t1, src);
 | 
			
		||||
			emit_insn(ctx, extwb, dst, t1);
 | 
			
		||||
			emit_zext_32(ctx, dst, is32);
 | 
			
		||||
			break;
 | 
			
		||||
		case 16:
 | 
			
		||||
			move_reg(ctx, t1, src);
 | 
			
		||||
			emit_insn(ctx, extwh, dst, t1);
 | 
			
		||||
			emit_zext_32(ctx, dst, is32);
 | 
			
		||||
			break;
 | 
			
		||||
		case 32:
 | 
			
		||||
			emit_insn(ctx, addw, dst, src, LOONGARCH_GPR_ZERO);
 | 
			
		||||
| 
						 | 
				
			
			@ -772,8 +774,8 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, bool ext
 | 
			
		|||
			break;
 | 
			
		||||
		case 32:
 | 
			
		||||
			emit_insn(ctx, revb2w, dst, dst);
 | 
			
		||||
			/* zero-extend 32 bits into 64 bits */
 | 
			
		||||
			emit_zext_32(ctx, dst, is32);
 | 
			
		||||
			/* clear the upper 32 bits */
 | 
			
		||||
			emit_zext_32(ctx, dst, true);
 | 
			
		||||
			break;
 | 
			
		||||
		case 64:
 | 
			
		||||
			emit_insn(ctx, revbd, dst, dst);
 | 
			
		||||
| 
						 | 
				
			
			@ -911,8 +913,6 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, bool ext
 | 
			
		|||
 | 
			
		||||
	/* function return */
 | 
			
		||||
	case BPF_JMP | BPF_EXIT:
 | 
			
		||||
		emit_sext_32(ctx, regmap[BPF_REG_0], true);
 | 
			
		||||
 | 
			
		||||
		if (i == ctx->prog->len - 1)
 | 
			
		||||
			break;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -988,14 +988,8 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, bool ext
 | 
			
		|||
			}
 | 
			
		||||
			break;
 | 
			
		||||
		case BPF_DW:
 | 
			
		||||
			if (is_signed_imm12(off)) {
 | 
			
		||||
				emit_insn(ctx, ldd, dst, src, off);
 | 
			
		||||
			} else if (is_signed_imm14(off)) {
 | 
			
		||||
				emit_insn(ctx, ldptrd, dst, src, off);
 | 
			
		||||
			} else {
 | 
			
		||||
				move_imm(ctx, t1, off, is32);
 | 
			
		||||
				emit_insn(ctx, ldxd, dst, src, t1);
 | 
			
		||||
			}
 | 
			
		||||
			move_imm(ctx, t1, off, is32);
 | 
			
		||||
			emit_insn(ctx, ldxd, dst, src, t1);
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -460,6 +460,7 @@ config MACH_LOONGSON2EF
 | 
			
		|||
 | 
			
		||||
config MACH_LOONGSON64
 | 
			
		||||
	bool "Loongson 64-bit family of machines"
 | 
			
		||||
	select ARCH_DMA_DEFAULT_COHERENT
 | 
			
		||||
	select ARCH_SPARSEMEM_ENABLE
 | 
			
		||||
	select ARCH_MIGHT_HAVE_PC_PARPORT
 | 
			
		||||
	select ARCH_MIGHT_HAVE_PC_SERIO
 | 
			
		||||
| 
						 | 
				
			
			@ -1251,6 +1252,7 @@ config CPU_LOONGSON64
 | 
			
		|||
	select CPU_SUPPORTS_MSA
 | 
			
		||||
	select CPU_DIEI_BROKEN if !LOONGSON3_ENHANCEMENT
 | 
			
		||||
	select CPU_MIPSR2_IRQ_VI
 | 
			
		||||
	select DMA_NONCOHERENT
 | 
			
		||||
	select WEAK_ORDERING
 | 
			
		||||
	select WEAK_REORDERING_BEYOND_LLSC
 | 
			
		||||
	select MIPS_ASID_BITS_VARIABLE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,7 +14,11 @@
 | 
			
		|||
#define ADAPTER_ROM		8
 | 
			
		||||
#define ACPI_TABLE		9
 | 
			
		||||
#define SMBIOS_TABLE		10
 | 
			
		||||
#define MAX_MEMORY_TYPE		11
 | 
			
		||||
#define UMA_VIDEO_RAM		11
 | 
			
		||||
#define VUMA_VIDEO_RAM		12
 | 
			
		||||
#define MAX_MEMORY_TYPE		13
 | 
			
		||||
 | 
			
		||||
#define MEM_SIZE_IS_IN_BYTES	(1 << 31)
 | 
			
		||||
 | 
			
		||||
#define LOONGSON3_BOOT_MEM_MAP_MAX 128
 | 
			
		||||
struct efi_memory_map_loongson {
 | 
			
		||||
| 
						 | 
				
			
			@ -117,7 +121,8 @@ struct irq_source_routing_table {
 | 
			
		|||
	u64 pci_io_start_addr;
 | 
			
		||||
	u64 pci_io_end_addr;
 | 
			
		||||
	u64 pci_config_addr;
 | 
			
		||||
	u32 dma_mask_bits;
 | 
			
		||||
	u16 dma_mask_bits;
 | 
			
		||||
	u16 dma_noncoherent;
 | 
			
		||||
} __packed;
 | 
			
		||||
 | 
			
		||||
struct interface_info {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -121,6 +121,19 @@ int copy_thread(struct task_struct *p, const struct kernel_clone_args *args)
 | 
			
		|||
	/*  Put the stack after the struct pt_regs.  */
 | 
			
		||||
	childksp = (unsigned long) childregs;
 | 
			
		||||
	p->thread.cp0_status = (read_c0_status() & ~(ST0_CU2|ST0_CU1)) | ST0_KERNEL_CUMASK;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * New tasks lose permission to use the fpu. This accelerates context
 | 
			
		||||
	 * switching for most programs since they don't use the fpu.
 | 
			
		||||
	 */
 | 
			
		||||
	clear_tsk_thread_flag(p, TIF_USEDFPU);
 | 
			
		||||
	clear_tsk_thread_flag(p, TIF_USEDMSA);
 | 
			
		||||
	clear_tsk_thread_flag(p, TIF_MSA_CTX_LIVE);
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_MIPS_MT_FPAFF
 | 
			
		||||
	clear_tsk_thread_flag(p, TIF_FPUBOUND);
 | 
			
		||||
#endif /* CONFIG_MIPS_MT_FPAFF */
 | 
			
		||||
 | 
			
		||||
	if (unlikely(args->fn)) {
 | 
			
		||||
		/* kernel thread */
 | 
			
		||||
		unsigned long status = p->thread.cp0_status;
 | 
			
		||||
| 
						 | 
				
			
			@ -149,20 +162,8 @@ int copy_thread(struct task_struct *p, const struct kernel_clone_args *args)
 | 
			
		|||
	p->thread.reg29 = (unsigned long) childregs;
 | 
			
		||||
	p->thread.reg31 = (unsigned long) ret_from_fork;
 | 
			
		||||
 | 
			
		||||
	/*
 | 
			
		||||
	 * New tasks lose permission to use the fpu. This accelerates context
 | 
			
		||||
	 * switching for most programs since they don't use the fpu.
 | 
			
		||||
	 */
 | 
			
		||||
	childregs->cp0_status &= ~(ST0_CU2|ST0_CU1);
 | 
			
		||||
 | 
			
		||||
	clear_tsk_thread_flag(p, TIF_USEDFPU);
 | 
			
		||||
	clear_tsk_thread_flag(p, TIF_USEDMSA);
 | 
			
		||||
	clear_tsk_thread_flag(p, TIF_MSA_CTX_LIVE);
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_MIPS_MT_FPAFF
 | 
			
		||||
	clear_tsk_thread_flag(p, TIF_FPUBOUND);
 | 
			
		||||
#endif /* CONFIG_MIPS_MT_FPAFF */
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_MIPS_FP_SUPPORT
 | 
			
		||||
	atomic_set(&p->thread.bd_emu_frame, BD_EMUFRAME_NONE);
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -351,10 +351,11 @@ early_initcall(mips_smp_ipi_init);
 | 
			
		|||
 */
 | 
			
		||||
asmlinkage void start_secondary(void)
 | 
			
		||||
{
 | 
			
		||||
	unsigned int cpu;
 | 
			
		||||
	unsigned int cpu = raw_smp_processor_id();
 | 
			
		||||
 | 
			
		||||
	cpu_probe();
 | 
			
		||||
	per_cpu_trap_init(false);
 | 
			
		||||
	rcutree_report_cpu_starting(cpu);
 | 
			
		||||
	mips_clockevent_init();
 | 
			
		||||
	mp_ops->init_secondary();
 | 
			
		||||
	cpu_report();
 | 
			
		||||
| 
						 | 
				
			
			@ -366,7 +367,6 @@ asmlinkage void start_secondary(void)
 | 
			
		|||
	 */
 | 
			
		||||
 | 
			
		||||
	calibrate_delay();
 | 
			
		||||
	cpu = smp_processor_id();
 | 
			
		||||
	cpu_data[cpu].udelay_val = loops_per_jiffy;
 | 
			
		||||
 | 
			
		||||
	set_cpu_sibling_map(cpu);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -13,6 +13,8 @@
 | 
			
		|||
 * Copyright (C) 2009 Lemote Inc.
 | 
			
		||||
 * Author: Wu Zhangjin, wuzhangjin@gmail.com
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <linux/dma-map-ops.h>
 | 
			
		||||
#include <linux/export.h>
 | 
			
		||||
#include <linux/pci_ids.h>
 | 
			
		||||
#include <asm/bootinfo.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -147,8 +149,14 @@ void __init prom_lefi_init_env(void)
 | 
			
		|||
 | 
			
		||||
	loongson_sysconf.dma_mask_bits = eirq_source->dma_mask_bits;
 | 
			
		||||
	if (loongson_sysconf.dma_mask_bits < 32 ||
 | 
			
		||||
		loongson_sysconf.dma_mask_bits > 64)
 | 
			
		||||
			loongson_sysconf.dma_mask_bits > 64) {
 | 
			
		||||
		loongson_sysconf.dma_mask_bits = 32;
 | 
			
		||||
		dma_default_coherent = true;
 | 
			
		||||
	} else {
 | 
			
		||||
		dma_default_coherent = !eirq_source->dma_noncoherent;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	pr_info("Firmware: Coherent DMA: %s\n", dma_default_coherent ? "on" : "off");
 | 
			
		||||
 | 
			
		||||
	loongson_sysconf.restart_addr = boot_p->reset_system.ResetWarm;
 | 
			
		||||
	loongson_sysconf.poweroff_addr = boot_p->reset_system.Shutdown;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,8 +49,7 @@ void virtual_early_config(void)
 | 
			
		|||
void __init szmem(unsigned int node)
 | 
			
		||||
{
 | 
			
		||||
	u32 i, mem_type;
 | 
			
		||||
	static unsigned long num_physpages;
 | 
			
		||||
	u64 node_id, node_psize, start_pfn, end_pfn, mem_start, mem_size;
 | 
			
		||||
	phys_addr_t node_id, mem_start, mem_size;
 | 
			
		||||
 | 
			
		||||
	/* Otherwise come from DTB */
 | 
			
		||||
	if (loongson_sysconf.fw_interface != LOONGSON_LEFI)
 | 
			
		||||
| 
						 | 
				
			
			@ -64,30 +63,46 @@ void __init szmem(unsigned int node)
 | 
			
		|||
 | 
			
		||||
		mem_type = loongson_memmap->map[i].mem_type;
 | 
			
		||||
		mem_size = loongson_memmap->map[i].mem_size;
 | 
			
		||||
		mem_start = loongson_memmap->map[i].mem_start;
 | 
			
		||||
 | 
			
		||||
		/* Memory size comes in MB if MEM_SIZE_IS_IN_BYTES not set */
 | 
			
		||||
		if (mem_size & MEM_SIZE_IS_IN_BYTES)
 | 
			
		||||
			mem_size &= ~MEM_SIZE_IS_IN_BYTES;
 | 
			
		||||
		else
 | 
			
		||||
			mem_size = mem_size << 20;
 | 
			
		||||
 | 
			
		||||
		mem_start = (node_id << 44) | loongson_memmap->map[i].mem_start;
 | 
			
		||||
 | 
			
		||||
		switch (mem_type) {
 | 
			
		||||
		case SYSTEM_RAM_LOW:
 | 
			
		||||
		case SYSTEM_RAM_HIGH:
 | 
			
		||||
			start_pfn = ((node_id << 44) + mem_start) >> PAGE_SHIFT;
 | 
			
		||||
			node_psize = (mem_size << 20) >> PAGE_SHIFT;
 | 
			
		||||
			end_pfn  = start_pfn + node_psize;
 | 
			
		||||
			num_physpages += node_psize;
 | 
			
		||||
			pr_info("Node%d: mem_type:%d, mem_start:0x%llx, mem_size:0x%llx MB\n",
 | 
			
		||||
				(u32)node_id, mem_type, mem_start, mem_size);
 | 
			
		||||
			pr_info("       start_pfn:0x%llx, end_pfn:0x%llx, num_physpages:0x%lx\n",
 | 
			
		||||
				start_pfn, end_pfn, num_physpages);
 | 
			
		||||
			memblock_add_node(PFN_PHYS(start_pfn),
 | 
			
		||||
					  PFN_PHYS(node_psize), node,
 | 
			
		||||
		case UMA_VIDEO_RAM:
 | 
			
		||||
			pr_info("Node %d, mem_type:%d\t[%pa], %pa bytes usable\n",
 | 
			
		||||
				(u32)node_id, mem_type, &mem_start, &mem_size);
 | 
			
		||||
			memblock_add_node(mem_start, mem_size, node,
 | 
			
		||||
					  MEMBLOCK_NONE);
 | 
			
		||||
			break;
 | 
			
		||||
		case SYSTEM_RAM_RESERVED:
 | 
			
		||||
			pr_info("Node%d: mem_type:%d, mem_start:0x%llx, mem_size:0x%llx MB\n",
 | 
			
		||||
				(u32)node_id, mem_type, mem_start, mem_size);
 | 
			
		||||
			memblock_reserve(((node_id << 44) + mem_start), mem_size << 20);
 | 
			
		||||
		case VIDEO_ROM:
 | 
			
		||||
		case ADAPTER_ROM:
 | 
			
		||||
		case ACPI_TABLE:
 | 
			
		||||
		case SMBIOS_TABLE:
 | 
			
		||||
			pr_info("Node %d, mem_type:%d\t[%pa], %pa bytes reserved\n",
 | 
			
		||||
				(u32)node_id, mem_type, &mem_start, &mem_size);
 | 
			
		||||
			memblock_reserve(mem_start, mem_size);
 | 
			
		||||
			break;
 | 
			
		||||
		/* We should not reserve VUMA_VIDEO_RAM as it overlaps with MMIO */
 | 
			
		||||
		case VUMA_VIDEO_RAM:
 | 
			
		||||
		default:
 | 
			
		||||
			pr_info("Node %d, mem_type:%d\t[%pa], %pa bytes unhandled\n",
 | 
			
		||||
				(u32)node_id, mem_type, &mem_start, &mem_size);
 | 
			
		||||
			break;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/* Reserve vgabios if it comes from firmware */
 | 
			
		||||
	if (loongson_sysconf.vgabios_addr)
 | 
			
		||||
		memblock_reserve(virt_to_phys((void *)loongson_sysconf.vgabios_addr),
 | 
			
		||||
				SZ_256K);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifndef CONFIG_NUMA
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -115,9 +115,12 @@ config ARCH_HAS_ILOG2_U64
 | 
			
		|||
	default n
 | 
			
		||||
 | 
			
		||||
config GENERIC_BUG
 | 
			
		||||
	bool
 | 
			
		||||
	default y
 | 
			
		||||
	def_bool y
 | 
			
		||||
	depends on BUG
 | 
			
		||||
	select GENERIC_BUG_RELATIVE_POINTERS if 64BIT
 | 
			
		||||
 | 
			
		||||
config GENERIC_BUG_RELATIVE_POINTERS
 | 
			
		||||
	bool
 | 
			
		||||
 | 
			
		||||
config GENERIC_HWEIGHT
 | 
			
		||||
	bool
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,7 +34,8 @@ void apply_alternatives(struct alt_instr *start, struct alt_instr *end,
 | 
			
		|||
 | 
			
		||||
/* Alternative SMP implementation. */
 | 
			
		||||
#define ALTERNATIVE(cond, replacement)		"!0:"	\
 | 
			
		||||
	".section .altinstructions, \"aw\"	!"	\
 | 
			
		||||
	".section .altinstructions, \"a\"	!"	\
 | 
			
		||||
	".align 4				!"	\
 | 
			
		||||
	".word (0b-4-.)				!"	\
 | 
			
		||||
	".hword 1, " __stringify(cond) "	!"	\
 | 
			
		||||
	".word " __stringify(replacement) "	!"	\
 | 
			
		||||
| 
						 | 
				
			
			@ -44,7 +45,8 @@ void apply_alternatives(struct alt_instr *start, struct alt_instr *end,
 | 
			
		|||
 | 
			
		||||
/* to replace one single instructions by a new instruction */
 | 
			
		||||
#define ALTERNATIVE(from, to, cond, replacement)\
 | 
			
		||||
	.section .altinstructions, "aw"	!	\
 | 
			
		||||
	.section .altinstructions, "a"	!	\
 | 
			
		||||
	.align 4			!	\
 | 
			
		||||
	.word (from - .)		!	\
 | 
			
		||||
	.hword (to - from)/4, cond	!	\
 | 
			
		||||
	.word replacement		!	\
 | 
			
		||||
| 
						 | 
				
			
			@ -52,7 +54,8 @@ void apply_alternatives(struct alt_instr *start, struct alt_instr *end,
 | 
			
		|||
 | 
			
		||||
/* to replace multiple instructions by new code */
 | 
			
		||||
#define ALTERNATIVE_CODE(from, num_instructions, cond, new_instr_ptr)\
 | 
			
		||||
	.section .altinstructions, "aw"	!	\
 | 
			
		||||
	.section .altinstructions, "a"	!	\
 | 
			
		||||
	.align 4			!	\
 | 
			
		||||
	.word (from - .)		!	\
 | 
			
		||||
	.hword -num_instructions, cond	!	\
 | 
			
		||||
	.word (new_instr_ptr - .)	!	\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -574,6 +574,7 @@
 | 
			
		|||
	 */
 | 
			
		||||
#define ASM_EXCEPTIONTABLE_ENTRY(fault_addr, except_addr)	\
 | 
			
		||||
	.section __ex_table,"aw"			!	\
 | 
			
		||||
	.align 4					!	\
 | 
			
		||||
	.word (fault_addr - .), (except_addr - .)	!	\
 | 
			
		||||
	.previous
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,24 +17,27 @@
 | 
			
		|||
#define	PARISC_BUG_BREAK_ASM	"break 0x1f, 0x1fff"
 | 
			
		||||
#define	PARISC_BUG_BREAK_INSN	0x03ffe01f  /* PARISC_BUG_BREAK_ASM */
 | 
			
		||||
 | 
			
		||||
#if defined(CONFIG_64BIT)
 | 
			
		||||
#define ASM_WORD_INSN		".dword\t"
 | 
			
		||||
#ifdef CONFIG_GENERIC_BUG_RELATIVE_POINTERS
 | 
			
		||||
# define __BUG_REL(val) ".word " __stringify(val) " - ."
 | 
			
		||||
#else
 | 
			
		||||
#define ASM_WORD_INSN		".word\t"
 | 
			
		||||
# define __BUG_REL(val) ".word " __stringify(val)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_DEBUG_BUGVERBOSE
 | 
			
		||||
#define BUG()								\
 | 
			
		||||
	do {								\
 | 
			
		||||
		asm volatile("\n"					\
 | 
			
		||||
			     "1:\t" PARISC_BUG_BREAK_ASM "\n"		\
 | 
			
		||||
			     "\t.pushsection __bug_table,\"aw\"\n"	\
 | 
			
		||||
			     "2:\t" ASM_WORD_INSN "1b, %c0\n"		\
 | 
			
		||||
			     "\t.short %c1, %c2\n"			\
 | 
			
		||||
			     "\t.org 2b+%c3\n"				\
 | 
			
		||||
			     "\t.pushsection __bug_table,\"a\"\n"	\
 | 
			
		||||
			     "\t.align 4\n"				\
 | 
			
		||||
			     "2:\t" __BUG_REL(1b) "\n"			\
 | 
			
		||||
			     "\t" __BUG_REL(%c0)  "\n"			\
 | 
			
		||||
			     "\t.short %1, %2\n"			\
 | 
			
		||||
			     "\t.blockz %3-2*4-2*2\n"			\
 | 
			
		||||
			     "\t.popsection"				\
 | 
			
		||||
			     : : "i" (__FILE__), "i" (__LINE__),	\
 | 
			
		||||
			     "i" (0), "i" (sizeof(struct bug_entry)) ); \
 | 
			
		||||
			     "i" (0), "i" (sizeof(struct bug_entry)) );	\
 | 
			
		||||
		unreachable();						\
 | 
			
		||||
	} while(0)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -51,10 +54,12 @@
 | 
			
		|||
	do {								\
 | 
			
		||||
		asm volatile("\n"					\
 | 
			
		||||
			     "1:\t" PARISC_BUG_BREAK_ASM "\n"		\
 | 
			
		||||
			     "\t.pushsection __bug_table,\"aw\"\n"	\
 | 
			
		||||
			     "2:\t" ASM_WORD_INSN "1b, %c0\n"		\
 | 
			
		||||
			     "\t.short %c1, %c2\n"			\
 | 
			
		||||
			     "\t.org 2b+%c3\n"				\
 | 
			
		||||
			     "\t.pushsection __bug_table,\"a\"\n"	\
 | 
			
		||||
			     "\t.align 4\n"				\
 | 
			
		||||
			     "2:\t" __BUG_REL(1b) "\n"			\
 | 
			
		||||
			     "\t" __BUG_REL(%c0)  "\n"			\
 | 
			
		||||
			     "\t.short %1, %2\n"			\
 | 
			
		||||
			     "\t.blockz %3-2*4-2*2\n"			\
 | 
			
		||||
			     "\t.popsection"				\
 | 
			
		||||
			     : : "i" (__FILE__), "i" (__LINE__),	\
 | 
			
		||||
			     "i" (BUGFLAG_WARNING|(flags)),		\
 | 
			
		||||
| 
						 | 
				
			
			@ -65,10 +70,11 @@
 | 
			
		|||
	do {								\
 | 
			
		||||
		asm volatile("\n"					\
 | 
			
		||||
			     "1:\t" PARISC_BUG_BREAK_ASM "\n"		\
 | 
			
		||||
			     "\t.pushsection __bug_table,\"aw\"\n"	\
 | 
			
		||||
			     "2:\t" ASM_WORD_INSN "1b\n"		\
 | 
			
		||||
			     "\t.short %c0\n"				\
 | 
			
		||||
			     "\t.org 2b+%c1\n"				\
 | 
			
		||||
			     "\t.pushsection __bug_table,\"a\"\n"	\
 | 
			
		||||
			     "\t.align 4\n"				\
 | 
			
		||||
			     "2:\t" __BUG_REL(1b) "\n"			\
 | 
			
		||||
			     "\t.short %0\n"				\
 | 
			
		||||
			     "\t.blockz %1-4-2\n"			\
 | 
			
		||||
			     "\t.popsection"				\
 | 
			
		||||
			     : : "i" (BUGFLAG_WARNING|(flags)),		\
 | 
			
		||||
			     "i" (sizeof(struct bug_entry)) );		\
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,10 +15,12 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran
 | 
			
		|||
	asm_volatile_goto("1:\n\t"
 | 
			
		||||
		 "nop\n\t"
 | 
			
		||||
		 ".pushsection __jump_table,  \"aw\"\n\t"
 | 
			
		||||
		 ".align %1\n\t"
 | 
			
		||||
		 ".word 1b - ., %l[l_yes] - .\n\t"
 | 
			
		||||
		 __stringify(ASM_ULONG_INSN) " %c0 - .\n\t"
 | 
			
		||||
		 ".popsection\n\t"
 | 
			
		||||
		 : :  "i" (&((char *)key)[branch]) :  : l_yes);
 | 
			
		||||
		 : : "i" (&((char *)key)[branch]), "i" (sizeof(long))
 | 
			
		||||
		 : : l_yes);
 | 
			
		||||
 | 
			
		||||
	return false;
 | 
			
		||||
l_yes:
 | 
			
		||||
| 
						 | 
				
			
			@ -30,10 +32,12 @@ static __always_inline bool arch_static_branch_jump(struct static_key *key, bool
 | 
			
		|||
	asm_volatile_goto("1:\n\t"
 | 
			
		||||
		 "b,n %l[l_yes]\n\t"
 | 
			
		||||
		 ".pushsection __jump_table,  \"aw\"\n\t"
 | 
			
		||||
		 ".align %1\n\t"
 | 
			
		||||
		 ".word 1b - ., %l[l_yes] - .\n\t"
 | 
			
		||||
		 __stringify(ASM_ULONG_INSN) " %c0 - .\n\t"
 | 
			
		||||
		 ".popsection\n\t"
 | 
			
		||||
		 : :  "i" (&((char *)key)[branch]) :  : l_yes);
 | 
			
		||||
		 : : "i" (&((char *)key)[branch]), "i" (sizeof(long))
 | 
			
		||||
		 : : l_yes);
 | 
			
		||||
 | 
			
		||||
	return false;
 | 
			
		||||
l_yes:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,7 +55,7 @@
 | 
			
		|||
})
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_SMP
 | 
			
		||||
# define __lock_aligned __section(".data..lock_aligned")
 | 
			
		||||
# define __lock_aligned __section(".data..lock_aligned") __aligned(16)
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* __PARISC_LDCW_H */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,6 +41,7 @@ struct exception_table_entry {
 | 
			
		|||
 | 
			
		||||
#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"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -75,7 +75,6 @@
 | 
			
		|||
 | 
			
		||||
/* We now return you to your regularly scheduled HPUX. */
 | 
			
		||||
 | 
			
		||||
#define ENOSYM		215	/* symbol does not exist in executable */
 | 
			
		||||
#define	ENOTSOCK	216	/* Socket operation on non-socket */
 | 
			
		||||
#define	EDESTADDRREQ	217	/* Destination address required */
 | 
			
		||||
#define	EMSGSIZE	218	/* Message too long */
 | 
			
		||||
| 
						 | 
				
			
			@ -101,7 +100,6 @@
 | 
			
		|||
#define	ETIMEDOUT	238	/* Connection timed out */
 | 
			
		||||
#define	ECONNREFUSED	239	/* Connection refused */
 | 
			
		||||
#define	EREFUSED	ECONNREFUSED	/* for HP's NFS apparently */
 | 
			
		||||
#define	EREMOTERELEASE	240	/* Remote peer released connection */
 | 
			
		||||
#define	EHOSTDOWN	241	/* Host is down */
 | 
			
		||||
#define	EHOSTUNREACH	242	/* No route to host */
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -130,6 +130,7 @@ SECTIONS
 | 
			
		|||
	RO_DATA(8)
 | 
			
		||||
 | 
			
		||||
	/* unwind info */
 | 
			
		||||
	. = ALIGN(4);
 | 
			
		||||
	.PARISC.unwind : {
 | 
			
		||||
		__start___unwind = .;
 | 
			
		||||
		*(.PARISC.unwind)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -23,6 +23,15 @@
 | 
			
		|||
#include <asm/feature-fixups.h>
 | 
			
		||||
 | 
			
		||||
#ifdef CONFIG_VSX
 | 
			
		||||
#define __REST_1FPVSR(n,c,base)						\
 | 
			
		||||
BEGIN_FTR_SECTION							\
 | 
			
		||||
	b	2f;							\
 | 
			
		||||
END_FTR_SECTION_IFSET(CPU_FTR_VSX);					\
 | 
			
		||||
	REST_FPR(n,base);						\
 | 
			
		||||
	b	3f;							\
 | 
			
		||||
2:	REST_VSR(n,c,base);						\
 | 
			
		||||
3:
 | 
			
		||||
 | 
			
		||||
#define __REST_32FPVSRS(n,c,base)					\
 | 
			
		||||
BEGIN_FTR_SECTION							\
 | 
			
		||||
	b	2f;							\
 | 
			
		||||
| 
						 | 
				
			
			@ -41,9 +50,11 @@ END_FTR_SECTION_IFSET(CPU_FTR_VSX);					\
 | 
			
		|||
2:	SAVE_32VSRS(n,c,base);						\
 | 
			
		||||
3:
 | 
			
		||||
#else
 | 
			
		||||
#define __REST_1FPVSR(n,b,base)		REST_FPR(n, base)
 | 
			
		||||
#define __REST_32FPVSRS(n,b,base)	REST_32FPRS(n, base)
 | 
			
		||||
#define __SAVE_32FPVSRS(n,b,base)	SAVE_32FPRS(n, base)
 | 
			
		||||
#endif
 | 
			
		||||
#define REST_1FPVSR(n,c,base)   __REST_1FPVSR(n,__REG_##c,__REG_##base)
 | 
			
		||||
#define REST_32FPVSRS(n,c,base) __REST_32FPVSRS(n,__REG_##c,__REG_##base)
 | 
			
		||||
#define SAVE_32FPVSRS(n,c,base) __SAVE_32FPVSRS(n,__REG_##c,__REG_##base)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -67,6 +78,7 @@ _GLOBAL(store_fp_state)
 | 
			
		|||
	SAVE_32FPVSRS(0, R4, R3)
 | 
			
		||||
	mffs	fr0
 | 
			
		||||
	stfd	fr0,FPSTATE_FPSCR(r3)
 | 
			
		||||
	REST_1FPVSR(0, R4, R3)
 | 
			
		||||
	blr
 | 
			
		||||
EXPORT_SYMBOL(store_fp_state)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -138,4 +150,5 @@ _GLOBAL(save_fpu)
 | 
			
		|||
2:	SAVE_32FPVSRS(0, R4, R6)
 | 
			
		||||
	mffs	fr0
 | 
			
		||||
	stfd	fr0,FPSTATE_FPSCR(r6)
 | 
			
		||||
	REST_1FPVSR(0, R4, R6)
 | 
			
		||||
	blr
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
		Reference in a new issue