mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-27 14:14:24 +08:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Cross-merge networking fixes after downstream PR. Conflicts: drivers/net/ethernet/intel/iavf/iavf_ethtool.c3a0b5a2929
("iavf: Introduce new state machines for flow director")95260816b4
("iavf: use iavf_schedule_aq_request() helper") https://lore.kernel.org/all/84e12519-04dc-bd80-bc34-8cf50d7898ce@intel.com/ drivers/net/ethernet/broadcom/bnxt/bnxt.cc13e268c07
("bnxt_en: Fix HWTSTAMP_FILTER_ALL packet timestamp logic")c2f8063309
("bnxt_en: Refactor RX VLAN acceleration logic.")a7445d6980
("bnxt_en: Add support for new RX and TPA_START completion types for P7")1c7fd6ee2f
("bnxt_en: Rename some macros for the P5 chips") https://lore.kernel.org/all/20231211110022.27926ad9@canb.auug.org.au/ drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.cbd6781c18c
("bnxt_en: Fix wrong return value check in bnxt_close_nic()")84793a4995
("bnxt_en: Skip nic close/open when configuring tstamp filters") https://lore.kernel.org/all/20231214113041.3a0c003c@canb.auug.org.au/ drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c3d7a3f2612
("net/mlx5: Nack sync reset request when HotPlug is enabled")cecf44ea1a
("net/mlx5: Allow sync reset flow when BF MGT interface device is present") https://lore.kernel.org/all/20231211110328.76c925af@canb.auug.org.au/ No adjacent changes. Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
8f674972d6
4
.mailmap
4
.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>
|
||||
@ -265,6 +266,9 @@ Jens Osterkamp <Jens.Osterkamp@de.ibm.com>
|
||||
Jernej Skrabec <jernej.skrabec@gmail.com> <jernej.skrabec@siol.net>
|
||||
Jessica Zhang <quic_jesszhan@quicinc.com> <jesszhan@codeaurora.org>
|
||||
Jilai Wang <quic_jilaiw@quicinc.com> <jilaiw@codeaurora.org>
|
||||
Jiri Kosina <jikos@kernel.org> <jikos@jikos.cz>
|
||||
Jiri Kosina <jikos@kernel.org> <jkosina@suse.cz>
|
||||
Jiri Kosina <jikos@kernel.org> <jkosina@suse.com>
|
||||
Jiri Pirko <jiri@resnulli.us> <jiri@nvidia.com>
|
||||
Jiri Pirko <jiri@resnulli.us> <jiri@mellanox.com>
|
||||
Jiri Pirko <jiri@resnulli.us> <jpirko@redhat.com>
|
||||
|
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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -15,7 +15,8 @@ The direct-io mode can be selected with the FOPEN_DIRECT_IO flag in the
|
||||
FUSE_OPEN reply.
|
||||
|
||||
In direct-io mode the page cache is completely bypassed for reads and writes.
|
||||
No read-ahead takes place. Shared mmap is disabled.
|
||||
No read-ahead takes place. Shared mmap is disabled by default. To allow shared
|
||||
mmap, the FUSE_DIRECT_IO_ALLOW_MMAP flag may be enabled in the FUSE_INIT reply.
|
||||
|
||||
In cached mode reads may be satisfied from the page cache, and data may be
|
||||
read-ahead by the kernel to fill the cache. The cache is always kept consistent
|
||||
|
@ -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.
|
||||
|
191
MAINTAINERS
191
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/
|
||||
@ -2534,7 +2523,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>
|
||||
@ -5596,13 +5585,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)
|
||||
@ -5715,13 +5701,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
|
||||
@ -7311,53 +7294,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
|
||||
@ -7371,22 +7339,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
|
||||
@ -7400,23 +7363,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
|
||||
|
||||
@ -7458,13 +7416,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
|
||||
@ -7480,13 +7435,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
|
||||
@ -8104,13 +8056,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)
|
||||
@ -9240,13 +9189,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
|
||||
@ -9619,6 +9565,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
|
||||
@ -11315,13 +11262,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
|
||||
@ -12202,6 +12146,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>
|
||||
@ -12681,13 +12632,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
|
||||
@ -14582,20 +14530,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*
|
||||
|
||||
@ -14683,23 +14627,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
|
||||
@ -17767,13 +17705,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
|
||||
@ -18823,33 +18758,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
|
||||
@ -19626,7 +19552,6 @@ S: Maintained
|
||||
F: drivers/misc/sgi-xp/
|
||||
|
||||
SHARED MEMORY COMMUNICATIONS (SMC) SOCKETS
|
||||
M: Karsten Graul <kgraul@linux.ibm.com>
|
||||
M: Wenjia Zhang <wenjia@linux.ibm.com>
|
||||
M: Jan Karcher <jaka@linux.ibm.com>
|
||||
R: D. Wythe <alibuda@linux.alibaba.com>
|
||||
@ -19659,13 +19584,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
|
||||
@ -19677,13 +19599,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
|
||||
@ -21185,33 +21104,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
|
||||
@ -22147,13 +22057,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
|
||||
@ -24082,20 +23989,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 = -rc4
|
||||
EXTRAVERSION = -rc5
|
||||
NAME = Hurr durr I'ma ninja sloth
|
||||
|
||||
# *DOCUMENTATION*
|
||||
|
@ -36,9 +36,7 @@
|
||||
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 @@
|
||||
|
||||
&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 @@
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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_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_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;
|
||||
|
@ -82,12 +82,9 @@
|
||||
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 @@ dma_subsys: bus@5a000000 {
|
||||
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_subsys: bus@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_subsys: bus@5d000000 {
|
||||
<&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_subsys: bus@5d000000 {
|
||||
<&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_subsys: bus@5d000000 {
|
||||
<&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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
};
|
||||
};
|
||||
|
||||
gpioe: gpio@2d000080 {
|
||||
gpioe: gpio@2d000000 {
|
||||
compatible = "fsl,imx8ulp-gpio";
|
||||
reg = <0x2d000000 0x1000>;
|
||||
gpio-controller;
|
||||
@ -498,7 +498,7 @@
|
||||
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 @@
|
||||
};
|
||||
};
|
||||
|
||||
gpiod: gpio@2e200080 {
|
||||
gpiod: gpio@2e200000 {
|
||||
compatible = "fsl,imx8ulp-gpio";
|
||||
reg = <0x2e200000 0x1000>;
|
||||
gpio-controller;
|
||||
|
@ -577,7 +577,7 @@
|
||||
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 @@
|
||||
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 @@
|
||||
};
|
||||
};
|
||||
|
||||
gpio2: gpio@43810080 {
|
||||
gpio2: gpio@43810000 {
|
||||
compatible = "fsl,imx93-gpio", "fsl,imx8ulp-gpio";
|
||||
reg = <0x43810000 0x1000>;
|
||||
gpio-controller;
|
||||
@ -972,7 +972,7 @@
|
||||
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 @@
|
||||
<&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 @@
|
||||
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 @@
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@40000000 {
|
||||
reg = <0 0x40000000 0 0x40000000>;
|
||||
};
|
||||
|
||||
|
@ -55,7 +55,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
memory@40000000 {
|
||||
reg = <0 0x40000000 0 0x20000000>;
|
||||
};
|
||||
|
||||
|
@ -126,6 +126,7 @@
|
||||
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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
#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 @@
|
||||
|
||||
&dsi0 {
|
||||
status = "okay";
|
||||
/delete-property/#size-cells;
|
||||
/delete-property/#address-cells;
|
||||
/delete-node/panel@0;
|
||||
ports {
|
||||
port {
|
||||
@ -441,20 +443,20 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
#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 @@
|
||||
|
||||
&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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
i2c2_pins: i2c2 {
|
||||
pins_bus {
|
||||
pins-bus {
|
||||
pinmux = <PINMUX_GPIO103__FUNC_SCL2>,
|
||||
<PINMUX_GPIO104__FUNC_SDA2>;
|
||||
bias-disable;
|
||||
@ -557,7 +557,7 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
i2c4_pins: i2c4 {
|
||||
pins_bus {
|
||||
pins-bus {
|
||||
pinmux = <PINMUX_GPIO105__FUNC_SCL4>,
|
||||
<PINMUX_GPIO106__FUNC_SDA4>;
|
||||
bias-disable;
|
||||
@ -575,7 +575,7 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
i2c6_pins: i2c6 {
|
||||
pins_bus {
|
||||
pins-bus {
|
||||
pinmux = <PINMUX_GPIO11__FUNC_SCL6>,
|
||||
<PINMUX_GPIO12__FUNC_SDA6>;
|
||||
bias-disable;
|
||||
@ -592,7 +592,7 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
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 @@
|
||||
};
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
};
|
||||
|
||||
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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
<&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_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_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 @@
|
||||
<&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 @@
|
||||
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 @@
|
||||
#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 @@
|
||||
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_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_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 @@
|
||||
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 @@
|
||||
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 @@
|
||||
|
||||
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 @@ ap_i2c_tp: &i2c5 {
|
||||
&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 @@
|
||||
&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 @@ ap_i2c_audio: &i2c8 {
|
||||
#address-cells = <3>;
|
||||
#size-cells = <2>;
|
||||
ranges;
|
||||
device_type = "pci";
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -1109,7 +1109,9 @@
|
||||
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 @@
|
||||
|
||||
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 @@
|
||||
<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 @@
|
||||
&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 @@
|
||||
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_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 @@
|
||||
<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>;
|
||||
};
|
||||
|
||||
|
@ -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
|
||||
|
@ -83,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)
|
||||
|
@ -32,6 +32,6 @@ static inline unsigned long efi_get_kimg_min_align(void)
|
||||
|
||||
#define EFI_KIMG_PREFERRED_ADDRESS PHYSADDR(VMLINUX_LOAD_ADDRESS)
|
||||
|
||||
unsigned long kernel_entry_address(void);
|
||||
unsigned long kernel_entry_address(unsigned long kernel_addr);
|
||||
|
||||
#endif /* _ASM_LOONGARCH_EFI_H */
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -130,8 +130,7 @@
|
||||
compatible = "pci0014,7a03.0",
|
||||
"pci0014,7a03",
|
||||
"pciclass0c0320",
|
||||
"pciclass0c03",
|
||||
"loongson, pci-gmac";
|
||||
"pciclass0c03";
|
||||
|
||||
reg = <0x1800 0x0 0x0 0x0 0x0>;
|
||||
interrupts = <12 IRQ_TYPE_LEVEL_LOW>,
|
||||
|
@ -193,8 +193,7 @@
|
||||
compatible = "pci0014,7a03.0",
|
||||
"pci0014,7a03",
|
||||
"pciclass020000",
|
||||
"pciclass0200",
|
||||
"loongson, pci-gmac";
|
||||
"pciclass0200";
|
||||
|
||||
reg = <0x1800 0x0 0x0 0x0 0x0>;
|
||||
interrupts = <12 IRQ_TYPE_LEVEL_HIGH>,
|
||||
|
@ -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
|
||||
|
@ -62,7 +62,7 @@
|
||||
.endif
|
||||
|
||||
/* Save previous stack pointer (r1) */
|
||||
addi r8, r1, SWITCH_FRAME_SIZE
|
||||
addi r8, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE
|
||||
PPC_STL r8, GPR1(r1)
|
||||
|
||||
.if \allregs == 1
|
||||
@ -182,7 +182,7 @@ ftrace_no_trace:
|
||||
mflr r3
|
||||
mtctr r3
|
||||
REST_GPR(3, r1)
|
||||
addi r1, r1, SWITCH_FRAME_SIZE
|
||||
addi r1, r1, SWITCH_FRAME_SIZE+STACK_FRAME_MIN_SIZE
|
||||
mtlr r0
|
||||
bctr
|
||||
#endif
|
||||
|
@ -8,9 +8,6 @@
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
/* Clock frequency (in Hz) of the rtcclk */
|
||||
#define RTCCLK_FREQ 1000000
|
||||
|
||||
/ {
|
||||
model = "Microchip PolarFire-SoC Icicle Kit";
|
||||
compatible = "microchip,mpfs-icicle-reference-rtlv2210", "microchip,mpfs-icicle-kit",
|
||||
@ -29,10 +26,6 @@
|
||||
stdout-path = "serial1:115200n8";
|
||||
};
|
||||
|
||||
cpus {
|
||||
timebase-frequency = <RTCCLK_FREQ>;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
|
@ -10,9 +10,6 @@
|
||||
#include "mpfs.dtsi"
|
||||
#include "mpfs-m100pfs-fabric.dtsi"
|
||||
|
||||
/* Clock frequency (in Hz) of the rtcclk */
|
||||
#define MTIMER_FREQ 1000000
|
||||
|
||||
/ {
|
||||
model = "Aries Embedded M100PFEVPS";
|
||||
compatible = "aries,m100pfsevp", "microchip,mpfs";
|
||||
@ -33,10 +30,6 @@
|
||||
stdout-path = "serial1:115200n8";
|
||||
};
|
||||
|
||||
cpus {
|
||||
timebase-frequency = <MTIMER_FREQ>;
|
||||
};
|
||||
|
||||
ddrc_cache_lo: memory@80000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x80000000 0x0 0x40000000>;
|
||||
|
@ -6,9 +6,6 @@
|
||||
#include "mpfs.dtsi"
|
||||
#include "mpfs-polarberry-fabric.dtsi"
|
||||
|
||||
/* Clock frequency (in Hz) of the rtcclk */
|
||||
#define MTIMER_FREQ 1000000
|
||||
|
||||
/ {
|
||||
model = "Sundance PolarBerry";
|
||||
compatible = "sundance,polarberry", "microchip,mpfs";
|
||||
@ -22,10 +19,6 @@
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
cpus {
|
||||
timebase-frequency = <MTIMER_FREQ>;
|
||||
};
|
||||
|
||||
ddrc_cache_lo: memory@80000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x80000000 0x0 0x2e000000>;
|
||||
|
@ -6,9 +6,6 @@
|
||||
#include "mpfs.dtsi"
|
||||
#include "mpfs-sev-kit-fabric.dtsi"
|
||||
|
||||
/* Clock frequency (in Hz) of the rtcclk */
|
||||
#define MTIMER_FREQ 1000000
|
||||
|
||||
/ {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
@ -28,10 +25,6 @@
|
||||
stdout-path = "serial1:115200n8";
|
||||
};
|
||||
|
||||
cpus {
|
||||
timebase-frequency = <MTIMER_FREQ>;
|
||||
};
|
||||
|
||||
reserved-memory {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
@ -11,9 +11,6 @@
|
||||
#include "mpfs.dtsi"
|
||||
#include "mpfs-tysom-m-fabric.dtsi"
|
||||
|
||||
/* Clock frequency (in Hz) of the rtcclk */
|
||||
#define MTIMER_FREQ 1000000
|
||||
|
||||
/ {
|
||||
model = "Aldec TySOM-M-MPFS250T-REV2";
|
||||
compatible = "aldec,tysom-m-mpfs250t-rev2", "microchip,mpfs";
|
||||
@ -34,10 +31,6 @@
|
||||
stdout-path = "serial1:115200n8";
|
||||
};
|
||||
|
||||
cpus {
|
||||
timebase-frequency = <MTIMER_FREQ>;
|
||||
};
|
||||
|
||||
ddrc_cache_lo: memory@80000000 {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x80000000 0x0 0x30000000>;
|
||||
|
@ -13,6 +13,7 @@
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
timebase-frequency = <1000000>;
|
||||
|
||||
cpu0: cpu@0 {
|
||||
compatible = "sifive,e51", "sifive,rocket0", "riscv";
|
||||
|
@ -34,7 +34,6 @@
|
||||
cpu0_intc: interrupt-controller {
|
||||
compatible = "riscv,cpu-intc";
|
||||
interrupt-controller;
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
};
|
||||
};
|
||||
|
@ -38,29 +38,35 @@ static long ax45mp_iocp_sw_workaround(void)
|
||||
return ret.error ? 0 : ret.value;
|
||||
}
|
||||
|
||||
static bool errata_probe_iocp(unsigned int stage, unsigned long arch_id, unsigned long impid)
|
||||
static void errata_probe_iocp(unsigned int stage, unsigned long arch_id, unsigned long impid)
|
||||
{
|
||||
static bool done;
|
||||
|
||||
if (!IS_ENABLED(CONFIG_ERRATA_ANDES_CMO))
|
||||
return false;
|
||||
return;
|
||||
|
||||
if (done)
|
||||
return;
|
||||
|
||||
done = true;
|
||||
|
||||
if (arch_id != ANDESTECH_AX45MP_MARCHID || impid != ANDESTECH_AX45MP_MIMPID)
|
||||
return false;
|
||||
return;
|
||||
|
||||
if (!ax45mp_iocp_sw_workaround())
|
||||
return false;
|
||||
return;
|
||||
|
||||
/* Set this just to make core cbo code happy */
|
||||
riscv_cbom_block_size = 1;
|
||||
riscv_noncoherent_supported();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void __init_or_module andes_errata_patch_func(struct alt_entry *begin, struct alt_entry *end,
|
||||
unsigned long archid, unsigned long impid,
|
||||
unsigned int stage)
|
||||
{
|
||||
errata_probe_iocp(stage, archid, impid);
|
||||
if (stage == RISCV_ALTERNATIVES_BOOT)
|
||||
errata_probe_iocp(stage, archid, impid);
|
||||
|
||||
/* we have nothing to patch here ATM so just return back */
|
||||
}
|
||||
|
@ -154,7 +154,6 @@ secondary_start_sbi:
|
||||
XIP_FIXUP_OFFSET a3
|
||||
add a3, a3, a1
|
||||
REG_L sp, (a3)
|
||||
scs_load_current
|
||||
|
||||
.Lsecondary_start_common:
|
||||
|
||||
@ -165,6 +164,7 @@ secondary_start_sbi:
|
||||
call relocate_enable_mmu
|
||||
#endif
|
||||
call .Lsetup_trap_vector
|
||||
scs_load_current
|
||||
tail smp_callin
|
||||
#endif /* CONFIG_SMP */
|
||||
|
||||
|
@ -40,15 +40,6 @@ struct relocation_handlers {
|
||||
long buffer);
|
||||
};
|
||||
|
||||
unsigned int initialize_relocation_hashtable(unsigned int num_relocations);
|
||||
void process_accumulated_relocations(struct module *me);
|
||||
int add_relocation_to_accumulate(struct module *me, int type, void *location,
|
||||
unsigned int hashtable_bits, Elf_Addr v);
|
||||
|
||||
struct hlist_head *relocation_hashtable;
|
||||
|
||||
struct list_head used_buckets_list;
|
||||
|
||||
/*
|
||||
* The auipc+jalr instruction pair can reach any PC-relative offset
|
||||
* in the range [-2^31 - 2^11, 2^31 - 2^11)
|
||||
@ -64,7 +55,7 @@ static bool riscv_insn_valid_32bit_offset(ptrdiff_t val)
|
||||
|
||||
static int riscv_insn_rmw(void *location, u32 keep, u32 set)
|
||||
{
|
||||
u16 *parcel = location;
|
||||
__le16 *parcel = location;
|
||||
u32 insn = (u32)le16_to_cpu(parcel[0]) | (u32)le16_to_cpu(parcel[1]) << 16;
|
||||
|
||||
insn &= keep;
|
||||
@ -77,7 +68,7 @@ static int riscv_insn_rmw(void *location, u32 keep, u32 set)
|
||||
|
||||
static int riscv_insn_rvc_rmw(void *location, u16 keep, u16 set)
|
||||
{
|
||||
u16 *parcel = location;
|
||||
__le16 *parcel = location;
|
||||
u16 insn = le16_to_cpu(*parcel);
|
||||
|
||||
insn &= keep;
|
||||
@ -604,7 +595,10 @@ static const struct relocation_handlers reloc_handlers[] = {
|
||||
/* 192-255 nonstandard ABI extensions */
|
||||
};
|
||||
|
||||
void process_accumulated_relocations(struct module *me)
|
||||
static void
|
||||
process_accumulated_relocations(struct module *me,
|
||||
struct hlist_head **relocation_hashtable,
|
||||
struct list_head *used_buckets_list)
|
||||
{
|
||||
/*
|
||||
* Only ADD/SUB/SET/ULEB128 should end up here.
|
||||
@ -624,18 +618,25 @@ void process_accumulated_relocations(struct module *me)
|
||||
* - Each relocation entry for a location address
|
||||
*/
|
||||
struct used_bucket *bucket_iter;
|
||||
struct used_bucket *bucket_iter_tmp;
|
||||
struct relocation_head *rel_head_iter;
|
||||
struct hlist_node *rel_head_iter_tmp;
|
||||
struct relocation_entry *rel_entry_iter;
|
||||
struct relocation_entry *rel_entry_iter_tmp;
|
||||
int curr_type;
|
||||
void *location;
|
||||
long buffer;
|
||||
|
||||
list_for_each_entry(bucket_iter, &used_buckets_list, head) {
|
||||
hlist_for_each_entry(rel_head_iter, bucket_iter->bucket, node) {
|
||||
list_for_each_entry_safe(bucket_iter, bucket_iter_tmp,
|
||||
used_buckets_list, head) {
|
||||
hlist_for_each_entry_safe(rel_head_iter, rel_head_iter_tmp,
|
||||
bucket_iter->bucket, node) {
|
||||
buffer = 0;
|
||||
location = rel_head_iter->location;
|
||||
list_for_each_entry(rel_entry_iter,
|
||||
rel_head_iter->rel_entry, head) {
|
||||
list_for_each_entry_safe(rel_entry_iter,
|
||||
rel_entry_iter_tmp,
|
||||
rel_head_iter->rel_entry,
|
||||
head) {
|
||||
curr_type = rel_entry_iter->type;
|
||||
reloc_handlers[curr_type].reloc_handler(
|
||||
me, &buffer, rel_entry_iter->value);
|
||||
@ -648,11 +649,14 @@ void process_accumulated_relocations(struct module *me)
|
||||
kfree(bucket_iter);
|
||||
}
|
||||
|
||||
kfree(relocation_hashtable);
|
||||
kfree(*relocation_hashtable);
|
||||
}
|
||||
|
||||
int add_relocation_to_accumulate(struct module *me, int type, void *location,
|
||||
unsigned int hashtable_bits, Elf_Addr v)
|
||||
static int add_relocation_to_accumulate(struct module *me, int type,
|
||||
void *location,
|
||||
unsigned int hashtable_bits, Elf_Addr v,
|
||||
struct hlist_head *relocation_hashtable,
|
||||
struct list_head *used_buckets_list)
|
||||
{
|
||||
struct relocation_entry *entry;
|
||||
struct relocation_head *rel_head;
|
||||
@ -661,6 +665,10 @@ int add_relocation_to_accumulate(struct module *me, int type, void *location,
|
||||
unsigned long hash;
|
||||
|
||||
entry = kmalloc(sizeof(*entry), GFP_KERNEL);
|
||||
|
||||
if (!entry)
|
||||
return -ENOMEM;
|
||||
|
||||
INIT_LIST_HEAD(&entry->head);
|
||||
entry->type = type;
|
||||
entry->value = v;
|
||||
@ -669,7 +677,10 @@ int add_relocation_to_accumulate(struct module *me, int type, void *location,
|
||||
|
||||
current_head = &relocation_hashtable[hash];
|
||||
|
||||
/* Find matching location (if any) */
|
||||
/*
|
||||
* Search for the relocation_head for the relocations that happen at the
|
||||
* provided location
|
||||
*/
|
||||
bool found = false;
|
||||
struct relocation_head *rel_head_iter;
|
||||
|
||||
@ -681,19 +692,45 @@ int add_relocation_to_accumulate(struct module *me, int type, void *location,
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If there has not yet been any relocations at the provided location,
|
||||
* create a relocation_head for that location and populate it with this
|
||||
* relocation_entry.
|
||||
*/
|
||||
if (!found) {
|
||||
rel_head = kmalloc(sizeof(*rel_head), GFP_KERNEL);
|
||||
|
||||
if (!rel_head) {
|
||||
kfree(entry);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
rel_head->rel_entry =
|
||||
kmalloc(sizeof(struct list_head), GFP_KERNEL);
|
||||
|
||||
if (!rel_head->rel_entry) {
|
||||
kfree(entry);
|
||||
kfree(rel_head);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
INIT_LIST_HEAD(rel_head->rel_entry);
|
||||
rel_head->location = location;
|
||||
INIT_HLIST_NODE(&rel_head->node);
|
||||
if (!current_head->first) {
|
||||
bucket =
|
||||
kmalloc(sizeof(struct used_bucket), GFP_KERNEL);
|
||||
|
||||
if (!bucket) {
|
||||
kfree(entry);
|
||||
kfree(rel_head);
|
||||
kfree(rel_head->rel_entry);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
INIT_LIST_HEAD(&bucket->head);
|
||||
bucket->bucket = current_head;
|
||||
list_add(&bucket->head, &used_buckets_list);
|
||||
list_add(&bucket->head, used_buckets_list);
|
||||
}
|
||||
hlist_add_head(&rel_head->node, current_head);
|
||||
}
|
||||
@ -704,7 +741,9 @@ int add_relocation_to_accumulate(struct module *me, int type, void *location,
|
||||
return 0;
|
||||
}
|
||||
|
||||
unsigned int initialize_relocation_hashtable(unsigned int num_relocations)
|
||||
static unsigned int
|
||||
initialize_relocation_hashtable(unsigned int num_relocations,
|
||||
struct hlist_head **relocation_hashtable)
|
||||
{
|
||||
/* Can safely assume that bits is not greater than sizeof(long) */
|
||||
unsigned long hashtable_size = roundup_pow_of_two(num_relocations);
|
||||
@ -720,12 +759,13 @@ unsigned int initialize_relocation_hashtable(unsigned int num_relocations)
|
||||
|
||||
hashtable_size <<= should_double_size;
|
||||
|
||||
relocation_hashtable = kmalloc_array(hashtable_size,
|
||||
sizeof(*relocation_hashtable),
|
||||
GFP_KERNEL);
|
||||
__hash_init(relocation_hashtable, hashtable_size);
|
||||
*relocation_hashtable = kmalloc_array(hashtable_size,
|
||||
sizeof(*relocation_hashtable),
|
||||
GFP_KERNEL);
|
||||
if (!*relocation_hashtable)
|
||||
return -ENOMEM;
|
||||
|
||||
INIT_LIST_HEAD(&used_buckets_list);
|
||||
__hash_init(*relocation_hashtable, hashtable_size);
|
||||
|
||||
return hashtable_bits;
|
||||
}
|
||||
@ -742,7 +782,17 @@ int apply_relocate_add(Elf_Shdr *sechdrs, const char *strtab,
|
||||
Elf_Addr v;
|
||||
int res;
|
||||
unsigned int num_relocations = sechdrs[relsec].sh_size / sizeof(*rel);
|
||||
unsigned int hashtable_bits = initialize_relocation_hashtable(num_relocations);
|
||||
struct hlist_head *relocation_hashtable;
|
||||
struct list_head used_buckets_list;
|
||||
unsigned int hashtable_bits;
|
||||
|
||||
hashtable_bits = initialize_relocation_hashtable(num_relocations,
|
||||
&relocation_hashtable);
|
||||
|
||||
if (hashtable_bits < 0)
|
||||
return hashtable_bits;
|
||||
|
||||
INIT_LIST_HEAD(&used_buckets_list);
|
||||
|
||||
pr_debug("Applying relocate section %u to %u\n", relsec,
|
||||
sechdrs[relsec].sh_info);
|
||||
@ -823,14 +873,18 @@ int apply_relocate_add(Elf_Shdr *sechdrs, const char *strtab,
|
||||
}
|
||||
|
||||
if (reloc_handlers[type].accumulate_handler)
|
||||
res = add_relocation_to_accumulate(me, type, location, hashtable_bits, v);
|
||||
res = add_relocation_to_accumulate(me, type, location,
|
||||
hashtable_bits, v,
|
||||
relocation_hashtable,
|
||||
&used_buckets_list);
|
||||
else
|
||||
res = handler(me, location, v);
|
||||
if (res)
|
||||
return res;
|
||||
}
|
||||
|
||||
process_accumulated_relocations(me);
|
||||
process_accumulated_relocations(me, &relocation_hashtable,
|
||||
&used_buckets_list);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -169,7 +169,7 @@ static void hwprobe_isa_ext0(struct riscv_hwprobe *pair,
|
||||
pair->value &= ~missing;
|
||||
}
|
||||
|
||||
static bool hwprobe_ext0_has(const struct cpumask *cpus, unsigned long ext)
|
||||
static bool hwprobe_ext0_has(const struct cpumask *cpus, u64 ext)
|
||||
{
|
||||
struct riscv_hwprobe pair;
|
||||
|
||||
|
@ -6,13 +6,13 @@
|
||||
.text
|
||||
.global test_uleb_basic
|
||||
test_uleb_basic:
|
||||
ld a0, second
|
||||
lw a0, second
|
||||
addi a0, a0, -127
|
||||
ret
|
||||
|
||||
.global test_uleb_large
|
||||
test_uleb_large:
|
||||
ld a0, fourth
|
||||
lw a0, fourth
|
||||
addi a0, a0, -0x07e8
|
||||
ret
|
||||
|
||||
@ -22,10 +22,10 @@ first:
|
||||
second:
|
||||
.reloc second, R_RISCV_SET_ULEB128, second
|
||||
.reloc second, R_RISCV_SUB_ULEB128, first
|
||||
.dword 0
|
||||
.word 0
|
||||
third:
|
||||
.space 1000
|
||||
fourth:
|
||||
.reloc fourth, R_RISCV_SET_ULEB128, fourth
|
||||
.reloc fourth, R_RISCV_SUB_ULEB128, third
|
||||
.dword 0
|
||||
.word 0
|
||||
|
@ -550,16 +550,14 @@ int handle_misaligned_store(struct pt_regs *regs)
|
||||
} else if ((insn & INSN_MASK_C_SD) == INSN_MATCH_C_SD) {
|
||||
len = 8;
|
||||
val.data_ulong = GET_RS2S(insn, regs);
|
||||
} else if ((insn & INSN_MASK_C_SDSP) == INSN_MATCH_C_SDSP &&
|
||||
((insn >> SH_RD) & 0x1f)) {
|
||||
} else if ((insn & INSN_MASK_C_SDSP) == INSN_MATCH_C_SDSP) {
|
||||
len = 8;
|
||||
val.data_ulong = GET_RS2C(insn, regs);
|
||||
#endif
|
||||
} else if ((insn & INSN_MASK_C_SW) == INSN_MATCH_C_SW) {
|
||||
len = 4;
|
||||
val.data_ulong = GET_RS2S(insn, regs);
|
||||
} else if ((insn & INSN_MASK_C_SWSP) == INSN_MATCH_C_SWSP &&
|
||||
((insn >> SH_RD) & 0x1f)) {
|
||||
} else if ((insn & INSN_MASK_C_SWSP) == INSN_MATCH_C_SWSP) {
|
||||
len = 4;
|
||||
val.data_ulong = GET_RS2C(insn, regs);
|
||||
} else if ((insn & INSN_MASK_C_FSD) == INSN_MATCH_C_FSD) {
|
||||
|
@ -587,10 +587,6 @@ void kvm_s390_vsie_gmap_notifier(struct gmap *gmap, unsigned long start,
|
||||
|
||||
if (!gmap_is_shadow(gmap))
|
||||
return;
|
||||
if (start >= 1UL << 31)
|
||||
/* We are only interested in prefix pages */
|
||||
return;
|
||||
|
||||
/*
|
||||
* Only new shadow blocks are added to the list during runtime,
|
||||
* therefore we can safely reference them all the time.
|
||||
|
@ -756,7 +756,7 @@ void ptep_zap_unused(struct mm_struct *mm, unsigned long addr,
|
||||
pte_clear(mm, addr, ptep);
|
||||
}
|
||||
if (reset)
|
||||
pgste_val(pgste) &= ~_PGSTE_GPS_USAGE_MASK;
|
||||
pgste_val(pgste) &= ~(_PGSTE_GPS_USAGE_MASK | _PGSTE_GPS_NODAT);
|
||||
pgste_set_unlock(ptep, pgste);
|
||||
preempt_enable();
|
||||
}
|
||||
|
@ -1320,6 +1320,9 @@ static void zenbleed_check_cpu(void *unused)
|
||||
|
||||
void amd_check_microcode(void)
|
||||
{
|
||||
if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
|
||||
return;
|
||||
|
||||
on_each_cpu(zenbleed_check_cpu, NULL, 1);
|
||||
}
|
||||
|
||||
|
@ -1234,10 +1234,6 @@ void setup_ghcb(void)
|
||||
if (!cc_platform_has(CC_ATTR_GUEST_STATE_ENCRYPT))
|
||||
return;
|
||||
|
||||
/* First make sure the hypervisor talks a supported protocol. */
|
||||
if (!sev_es_negotiate_protocol())
|
||||
sev_es_terminate(SEV_TERM_SET_GEN, GHCB_SEV_ES_GEN_REQ);
|
||||
|
||||
/*
|
||||
* Check whether the runtime #VC exception handler is active. It uses
|
||||
* the per-CPU GHCB page which is set up by sev_es_init_vc_handling().
|
||||
@ -1254,6 +1250,13 @@ void setup_ghcb(void)
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure the hypervisor talks a supported protocol.
|
||||
* This gets called only in the BSP boot phase.
|
||||
*/
|
||||
if (!sev_es_negotiate_protocol())
|
||||
sev_es_terminate(SEV_TERM_SET_GEN, GHCB_SEV_ES_GEN_REQ);
|
||||
|
||||
/*
|
||||
* Clear the boot_ghcb. The first exception comes in before the bss
|
||||
* section is cleared.
|
||||
|
@ -182,6 +182,7 @@ static int kvm_mmu_rmaps_stat_release(struct inode *inode, struct file *file)
|
||||
}
|
||||
|
||||
static const struct file_operations mmu_rmaps_stat_fops = {
|
||||
.owner = THIS_MODULE,
|
||||
.open = kvm_mmu_rmaps_stat_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
|
@ -1855,15 +1855,17 @@ void svm_set_cr0(struct kvm_vcpu *vcpu, unsigned long cr0)
|
||||
bool old_paging = is_paging(vcpu);
|
||||
|
||||
#ifdef CONFIG_X86_64
|
||||
if (vcpu->arch.efer & EFER_LME && !vcpu->arch.guest_state_protected) {
|
||||
if (vcpu->arch.efer & EFER_LME) {
|
||||
if (!is_paging(vcpu) && (cr0 & X86_CR0_PG)) {
|
||||
vcpu->arch.efer |= EFER_LMA;
|
||||
svm->vmcb->save.efer |= EFER_LMA | EFER_LME;
|
||||
if (!vcpu->arch.guest_state_protected)
|
||||
svm->vmcb->save.efer |= EFER_LMA | EFER_LME;
|
||||
}
|
||||
|
||||
if (is_paging(vcpu) && !(cr0 & X86_CR0_PG)) {
|
||||
vcpu->arch.efer &= ~EFER_LMA;
|
||||
svm->vmcb->save.efer &= ~(EFER_LMA | EFER_LME);
|
||||
if (!vcpu->arch.guest_state_protected)
|
||||
svm->vmcb->save.efer &= ~(EFER_LMA | EFER_LME);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -5518,8 +5518,8 @@ static void kvm_vcpu_ioctl_x86_get_xsave2(struct kvm_vcpu *vcpu,
|
||||
static void kvm_vcpu_ioctl_x86_get_xsave(struct kvm_vcpu *vcpu,
|
||||
struct kvm_xsave *guest_xsave)
|
||||
{
|
||||
return kvm_vcpu_ioctl_x86_get_xsave2(vcpu, (void *)guest_xsave->region,
|
||||
sizeof(guest_xsave->region));
|
||||
kvm_vcpu_ioctl_x86_get_xsave2(vcpu, (void *)guest_xsave->region,
|
||||
sizeof(guest_xsave->region));
|
||||
}
|
||||
|
||||
static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu *vcpu,
|
||||
@ -13031,7 +13031,10 @@ bool kvm_arch_vcpu_in_kernel(struct kvm_vcpu *vcpu)
|
||||
if (vcpu->arch.guest_state_protected)
|
||||
return true;
|
||||
|
||||
return vcpu->arch.preempted_in_kernel;
|
||||
if (vcpu != kvm_get_running_vcpu())
|
||||
return vcpu->arch.preempted_in_kernel;
|
||||
|
||||
return static_call(kvm_x86_get_cpl)(vcpu) == 0;
|
||||
}
|
||||
|
||||
unsigned long kvm_arch_vcpu_get_ip(struct kvm_vcpu *vcpu)
|
||||
|
@ -399,13 +399,13 @@ acpi_evaluate_reference(acpi_handle handle,
|
||||
acpi_handle_debug(list->handles[i], "Found in reference list\n");
|
||||
}
|
||||
|
||||
end:
|
||||
if (ACPI_FAILURE(status)) {
|
||||
list->count = 0;
|
||||
kfree(list->handles);
|
||||
list->handles = NULL;
|
||||
}
|
||||
|
||||
end:
|
||||
kfree(buffer.pointer);
|
||||
|
||||
return status;
|
||||
|
@ -449,9 +449,9 @@ static ssize_t console_show(struct device *dev, struct device_attribute *attr,
|
||||
struct sk_buff *skb;
|
||||
unsigned int len;
|
||||
|
||||
spin_lock(&card->cli_queue_lock);
|
||||
spin_lock_bh(&card->cli_queue_lock);
|
||||
skb = skb_dequeue(&card->cli_queue[SOLOS_CHAN(atmdev)]);
|
||||
spin_unlock(&card->cli_queue_lock);
|
||||
spin_unlock_bh(&card->cli_queue_lock);
|
||||
if(skb == NULL)
|
||||
return sprintf(buf, "No data.\n");
|
||||
|
||||
@ -956,14 +956,14 @@ static void pclose(struct atm_vcc *vcc)
|
||||
struct pkt_hdr *header;
|
||||
|
||||
/* Remove any yet-to-be-transmitted packets from the pending queue */
|
||||
spin_lock(&card->tx_queue_lock);
|
||||
spin_lock_bh(&card->tx_queue_lock);
|
||||
skb_queue_walk_safe(&card->tx_queue[port], skb, tmpskb) {
|
||||
if (SKB_CB(skb)->vcc == vcc) {
|
||||
skb_unlink(skb, &card->tx_queue[port]);
|
||||
solos_pop(vcc, skb);
|
||||
}
|
||||
}
|
||||
spin_unlock(&card->tx_queue_lock);
|
||||
spin_unlock_bh(&card->tx_queue_lock);
|
||||
|
||||
skb = alloc_skb(sizeof(*header), GFP_KERNEL);
|
||||
if (!skb) {
|
||||
|
@ -144,7 +144,7 @@ static DEVICE_ATTR(release, S_IWUSR, NULL, cpu_release_store);
|
||||
#endif /* CONFIG_ARCH_CPU_PROBE_RELEASE */
|
||||
#endif /* CONFIG_HOTPLUG_CPU */
|
||||
|
||||
#ifdef CONFIG_KEXEC
|
||||
#ifdef CONFIG_KEXEC_CORE
|
||||
#include <linux/kexec.h>
|
||||
|
||||
static ssize_t crash_notes_show(struct device *dev,
|
||||
@ -189,14 +189,14 @@ static const struct attribute_group crash_note_cpu_attr_group = {
|
||||
#endif
|
||||
|
||||
static const struct attribute_group *common_cpu_attr_groups[] = {
|
||||
#ifdef CONFIG_KEXEC
|
||||
#ifdef CONFIG_KEXEC_CORE
|
||||
&crash_note_cpu_attr_group,
|
||||
#endif
|
||||
NULL
|
||||
};
|
||||
|
||||
static const struct attribute_group *hotplugable_cpu_attr_groups[] = {
|
||||
#ifdef CONFIG_KEXEC
|
||||
#ifdef CONFIG_KEXEC_CORE
|
||||
&crash_note_cpu_attr_group,
|
||||
#endif
|
||||
NULL
|
||||
|
@ -362,6 +362,7 @@ void dev_coredumpm(struct device *dev, struct module *owner,
|
||||
devcd->devcd_dev.class = &devcd_class;
|
||||
|
||||
mutex_lock(&devcd->mutex);
|
||||
dev_set_uevent_suppress(&devcd->devcd_dev, true);
|
||||
if (device_add(&devcd->devcd_dev))
|
||||
goto put_device;
|
||||
|
||||
@ -376,6 +377,8 @@ void dev_coredumpm(struct device *dev, struct module *owner,
|
||||
"devcoredump"))
|
||||
dev_warn(dev, "devcoredump create_link failed\n");
|
||||
|
||||
dev_set_uevent_suppress(&devcd->devcd_dev, false);
|
||||
kobject_uevent(&devcd->devcd_dev.kobj, KOBJ_ADD);
|
||||
INIT_DELAYED_WORK(&devcd->del_wk, devcd_del);
|
||||
schedule_delayed_work(&devcd->del_wk, DEVCD_TIMEOUT);
|
||||
mutex_unlock(&devcd->mutex);
|
||||
|
@ -180,6 +180,9 @@ static inline unsigned long memblk_nr_poison(struct memory_block *mem)
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Must acquire mem_hotplug_lock in write mode.
|
||||
*/
|
||||
static int memory_block_online(struct memory_block *mem)
|
||||
{
|
||||
unsigned long start_pfn = section_nr_to_pfn(mem->start_section_nr);
|
||||
@ -204,10 +207,11 @@ static int memory_block_online(struct memory_block *mem)
|
||||
if (mem->altmap)
|
||||
nr_vmemmap_pages = mem->altmap->free;
|
||||
|
||||
mem_hotplug_begin();
|
||||
if (nr_vmemmap_pages) {
|
||||
ret = mhp_init_memmap_on_memory(start_pfn, nr_vmemmap_pages, zone);
|
||||
if (ret)
|
||||
return ret;
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = online_pages(start_pfn + nr_vmemmap_pages,
|
||||
@ -215,7 +219,7 @@ static int memory_block_online(struct memory_block *mem)
|
||||
if (ret) {
|
||||
if (nr_vmemmap_pages)
|
||||
mhp_deinit_memmap_on_memory(start_pfn, nr_vmemmap_pages);
|
||||
return ret;
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -227,9 +231,14 @@ static int memory_block_online(struct memory_block *mem)
|
||||
nr_vmemmap_pages);
|
||||
|
||||
mem->zone = zone;
|
||||
out:
|
||||
mem_hotplug_done();
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Must acquire mem_hotplug_lock in write mode.
|
||||
*/
|
||||
static int memory_block_offline(struct memory_block *mem)
|
||||
{
|
||||
unsigned long start_pfn = section_nr_to_pfn(mem->start_section_nr);
|
||||
@ -247,6 +256,7 @@ static int memory_block_offline(struct memory_block *mem)
|
||||
if (mem->altmap)
|
||||
nr_vmemmap_pages = mem->altmap->free;
|
||||
|
||||
mem_hotplug_begin();
|
||||
if (nr_vmemmap_pages)
|
||||
adjust_present_page_count(pfn_to_page(start_pfn), mem->group,
|
||||
-nr_vmemmap_pages);
|
||||
@ -258,13 +268,15 @@ static int memory_block_offline(struct memory_block *mem)
|
||||
if (nr_vmemmap_pages)
|
||||
adjust_present_page_count(pfn_to_page(start_pfn),
|
||||
mem->group, nr_vmemmap_pages);
|
||||
return ret;
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (nr_vmemmap_pages)
|
||||
mhp_deinit_memmap_on_memory(start_pfn, nr_vmemmap_pages);
|
||||
|
||||
mem->zone = NULL;
|
||||
out:
|
||||
mem_hotplug_done();
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -929,7 +929,6 @@ dpll_pin_parent_pin_set(struct dpll_pin *pin, struct nlattr *parent_nest,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
struct nlattr *tb[DPLL_A_PIN_MAX + 1];
|
||||
enum dpll_pin_state state;
|
||||
u32 ppin_idx;
|
||||
int ret;
|
||||
|
||||
@ -940,10 +939,14 @@ dpll_pin_parent_pin_set(struct dpll_pin *pin, struct nlattr *parent_nest,
|
||||
return -EINVAL;
|
||||
}
|
||||
ppin_idx = nla_get_u32(tb[DPLL_A_PIN_PARENT_ID]);
|
||||
state = nla_get_u32(tb[DPLL_A_PIN_STATE]);
|
||||
ret = dpll_pin_on_pin_state_set(pin, ppin_idx, state, extack);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (tb[DPLL_A_PIN_STATE]) {
|
||||
enum dpll_pin_state state = nla_get_u32(tb[DPLL_A_PIN_STATE]);
|
||||
|
||||
ret = dpll_pin_on_pin_state_set(pin, ppin_idx, state, extack);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -99,6 +99,7 @@ struct ffa_drv_info {
|
||||
void *tx_buffer;
|
||||
bool mem_ops_native;
|
||||
bool bitmap_created;
|
||||
bool notif_enabled;
|
||||
unsigned int sched_recv_irq;
|
||||
unsigned int cpuhp_state;
|
||||
struct ffa_pcpu_irq __percpu *irq_pcpu;
|
||||
@ -782,7 +783,7 @@ static void ffa_notification_info_get(void)
|
||||
if (ids_processed >= max_ids - 1)
|
||||
break;
|
||||
|
||||
part_id = packed_id_list[++ids_processed];
|
||||
part_id = packed_id_list[ids_processed++];
|
||||
|
||||
if (!ids_count[list]) { /* Global Notification */
|
||||
__do_sched_recv_cb(part_id, 0, false);
|
||||
@ -794,7 +795,7 @@ static void ffa_notification_info_get(void)
|
||||
if (ids_processed >= max_ids - 1)
|
||||
break;
|
||||
|
||||
vcpu_id = packed_id_list[++ids_processed];
|
||||
vcpu_id = packed_id_list[ids_processed++];
|
||||
|
||||
__do_sched_recv_cb(part_id, vcpu_id, true);
|
||||
}
|
||||
@ -889,6 +890,8 @@ static int ffa_memory_lend(struct ffa_mem_ops_args *args)
|
||||
|
||||
#define FFA_SECURE_PARTITION_ID_FLAG BIT(15)
|
||||
|
||||
#define ffa_notifications_disabled() (!drv_info->notif_enabled)
|
||||
|
||||
enum notify_type {
|
||||
NON_SECURE_VM,
|
||||
SECURE_PARTITION,
|
||||
@ -908,6 +911,9 @@ static int ffa_sched_recv_cb_update(u16 part_id, ffa_sched_recv_cb callback,
|
||||
struct ffa_dev_part_info *partition;
|
||||
bool cb_valid;
|
||||
|
||||
if (ffa_notifications_disabled())
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
partition = xa_load(&drv_info->partition_info, part_id);
|
||||
write_lock(&partition->rw_lock);
|
||||
|
||||
@ -1001,6 +1007,9 @@ static int ffa_notify_relinquish(struct ffa_device *dev, int notify_id)
|
||||
int rc;
|
||||
enum notify_type type = ffa_notify_type_get(dev->vm_id);
|
||||
|
||||
if (ffa_notifications_disabled())
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (notify_id >= FFA_MAX_NOTIFICATIONS)
|
||||
return -EINVAL;
|
||||
|
||||
@ -1027,6 +1036,9 @@ static int ffa_notify_request(struct ffa_device *dev, bool is_per_vcpu,
|
||||
u32 flags = 0;
|
||||
enum notify_type type = ffa_notify_type_get(dev->vm_id);
|
||||
|
||||
if (ffa_notifications_disabled())
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (notify_id >= FFA_MAX_NOTIFICATIONS)
|
||||
return -EINVAL;
|
||||
|
||||
@ -1057,6 +1069,9 @@ static int ffa_notify_send(struct ffa_device *dev, int notify_id,
|
||||
{
|
||||
u32 flags = 0;
|
||||
|
||||
if (ffa_notifications_disabled())
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
if (is_per_vcpu)
|
||||
flags |= (PER_VCPU_NOTIFICATION_FLAG | vcpu << 16);
|
||||
|
||||
@ -1233,7 +1248,7 @@ static void ffa_partitions_cleanup(void)
|
||||
if (!count)
|
||||
return;
|
||||
|
||||
info = kcalloc(count, sizeof(**info), GFP_KERNEL);
|
||||
info = kcalloc(count, sizeof(*info), GFP_KERNEL);
|
||||
if (!info)
|
||||
return;
|
||||
|
||||
@ -1311,8 +1326,10 @@ static int ffa_sched_recv_irq_map(void)
|
||||
|
||||
static void ffa_sched_recv_irq_unmap(void)
|
||||
{
|
||||
if (drv_info->sched_recv_irq)
|
||||
if (drv_info->sched_recv_irq) {
|
||||
irq_dispose_mapping(drv_info->sched_recv_irq);
|
||||
drv_info->sched_recv_irq = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static int ffa_cpuhp_pcpu_irq_enable(unsigned int cpu)
|
||||
@ -1329,17 +1346,23 @@ static int ffa_cpuhp_pcpu_irq_disable(unsigned int cpu)
|
||||
|
||||
static void ffa_uninit_pcpu_irq(void)
|
||||
{
|
||||
if (drv_info->cpuhp_state)
|
||||
if (drv_info->cpuhp_state) {
|
||||
cpuhp_remove_state(drv_info->cpuhp_state);
|
||||
drv_info->cpuhp_state = 0;
|
||||
}
|
||||
|
||||
if (drv_info->notif_pcpu_wq)
|
||||
if (drv_info->notif_pcpu_wq) {
|
||||
destroy_workqueue(drv_info->notif_pcpu_wq);
|
||||
drv_info->notif_pcpu_wq = NULL;
|
||||
}
|
||||
|
||||
if (drv_info->sched_recv_irq)
|
||||
free_percpu_irq(drv_info->sched_recv_irq, drv_info->irq_pcpu);
|
||||
|
||||
if (drv_info->irq_pcpu)
|
||||
if (drv_info->irq_pcpu) {
|
||||
free_percpu(drv_info->irq_pcpu);
|
||||
drv_info->irq_pcpu = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static int ffa_init_pcpu_irq(unsigned int irq)
|
||||
@ -1388,22 +1411,23 @@ static void ffa_notifications_cleanup(void)
|
||||
ffa_notification_bitmap_destroy();
|
||||
drv_info->bitmap_created = false;
|
||||
}
|
||||
drv_info->notif_enabled = false;
|
||||
}
|
||||
|
||||
static int ffa_notifications_setup(void)
|
||||
static void ffa_notifications_setup(void)
|
||||
{
|
||||
int ret, irq;
|
||||
|
||||
ret = ffa_features(FFA_NOTIFICATION_BITMAP_CREATE, 0, NULL, NULL);
|
||||
if (ret) {
|
||||
pr_err("Notifications not supported, continuing with it ..\n");
|
||||
return 0;
|
||||
pr_info("Notifications not supported, continuing with it ..\n");
|
||||
return;
|
||||
}
|
||||
|
||||
ret = ffa_notification_bitmap_create();
|
||||
if (ret) {
|
||||
pr_err("notification_bitmap_create error %d\n", ret);
|
||||
return ret;
|
||||
pr_info("Notification bitmap create error %d\n", ret);
|
||||
return;
|
||||
}
|
||||
drv_info->bitmap_created = true;
|
||||
|
||||
@ -1422,14 +1446,11 @@ static int ffa_notifications_setup(void)
|
||||
hash_init(drv_info->notifier_hash);
|
||||
mutex_init(&drv_info->notify_lock);
|
||||
|
||||
/* Register internal scheduling callback */
|
||||
ret = ffa_sched_recv_cb_update(drv_info->vm_id, ffa_self_notif_handle,
|
||||
drv_info, true);
|
||||
if (!ret)
|
||||
return ret;
|
||||
drv_info->notif_enabled = true;
|
||||
return;
|
||||
cleanup:
|
||||
pr_info("Notification setup failed %d, not enabled\n", ret);
|
||||
ffa_notifications_cleanup();
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int __init ffa_init(void)
|
||||
@ -1483,17 +1504,18 @@ static int __init ffa_init(void)
|
||||
mutex_init(&drv_info->rx_lock);
|
||||
mutex_init(&drv_info->tx_lock);
|
||||
|
||||
ffa_setup_partitions();
|
||||
|
||||
ffa_set_up_mem_ops_native_flag();
|
||||
|
||||
ret = ffa_notifications_setup();
|
||||
ffa_notifications_setup();
|
||||
|
||||
ffa_setup_partitions();
|
||||
|
||||
ret = ffa_sched_recv_cb_update(drv_info->vm_id, ffa_self_notif_handle,
|
||||
drv_info, true);
|
||||
if (ret)
|
||||
goto partitions_cleanup;
|
||||
pr_info("Failed to register driver sched callback %d\n", ret);
|
||||
|
||||
return 0;
|
||||
partitions_cleanup:
|
||||
ffa_partitions_cleanup();
|
||||
free_pages:
|
||||
if (drv_info->tx_buffer)
|
||||
free_pages_exact(drv_info->tx_buffer, RXTX_BUFFER_SIZE);
|
||||
|
@ -152,7 +152,7 @@ struct perf_dom_info {
|
||||
u32 opp_count;
|
||||
u32 sustained_freq_khz;
|
||||
u32 sustained_perf_level;
|
||||
u32 mult_factor;
|
||||
unsigned long mult_factor;
|
||||
struct scmi_perf_domain_info info;
|
||||
struct scmi_opp opp[MAX_OPPS];
|
||||
struct scmi_fc_info *fc_info;
|
||||
@ -268,13 +268,14 @@ scmi_perf_domain_attributes_get(const struct scmi_protocol_handle *ph,
|
||||
dom_info->sustained_perf_level =
|
||||
le32_to_cpu(attr->sustained_perf_level);
|
||||
if (!dom_info->sustained_freq_khz ||
|
||||
!dom_info->sustained_perf_level)
|
||||
!dom_info->sustained_perf_level ||
|
||||
dom_info->level_indexing_mode)
|
||||
/* CPUFreq converts to kHz, hence default 1000 */
|
||||
dom_info->mult_factor = 1000;
|
||||
else
|
||||
dom_info->mult_factor =
|
||||
(dom_info->sustained_freq_khz * 1000) /
|
||||
dom_info->sustained_perf_level;
|
||||
(dom_info->sustained_freq_khz * 1000UL)
|
||||
/ dom_info->sustained_perf_level;
|
||||
strscpy(dom_info->info.name, attr->name,
|
||||
SCMI_SHORT_NAME_MAX_SIZE);
|
||||
}
|
||||
@ -798,7 +799,7 @@ static int scmi_dvfs_device_opps_add(const struct scmi_protocol_handle *ph,
|
||||
if (!dom->level_indexing_mode)
|
||||
freq = dom->opp[idx].perf * dom->mult_factor;
|
||||
else
|
||||
freq = dom->opp[idx].indicative_freq * 1000;
|
||||
freq = dom->opp[idx].indicative_freq * dom->mult_factor;
|
||||
|
||||
data.level = dom->opp[idx].perf;
|
||||
data.freq = freq;
|
||||
@ -845,7 +846,8 @@ static int scmi_dvfs_freq_set(const struct scmi_protocol_handle *ph, u32 domain,
|
||||
} else {
|
||||
struct scmi_opp *opp;
|
||||
|
||||
opp = LOOKUP_BY_FREQ(dom->opps_by_freq, freq / 1000);
|
||||
opp = LOOKUP_BY_FREQ(dom->opps_by_freq,
|
||||
freq / dom->mult_factor);
|
||||
if (!opp)
|
||||
return -EIO;
|
||||
|
||||
@ -879,7 +881,7 @@ static int scmi_dvfs_freq_get(const struct scmi_protocol_handle *ph, u32 domain,
|
||||
if (!opp)
|
||||
return -EIO;
|
||||
|
||||
*freq = opp->indicative_freq * 1000;
|
||||
*freq = opp->indicative_freq * dom->mult_factor;
|
||||
}
|
||||
|
||||
return ret;
|
||||
@ -902,7 +904,7 @@ static int scmi_dvfs_est_power_get(const struct scmi_protocol_handle *ph,
|
||||
if (!dom->level_indexing_mode)
|
||||
opp_freq = opp->perf * dom->mult_factor;
|
||||
else
|
||||
opp_freq = opp->indicative_freq * 1000;
|
||||
opp_freq = opp->indicative_freq * dom->mult_factor;
|
||||
|
||||
if (opp_freq < *freq)
|
||||
continue;
|
||||
|
@ -35,9 +35,9 @@ efi_status_t handle_kernel_image(unsigned long *image_addr,
|
||||
return status;
|
||||
}
|
||||
|
||||
unsigned long kernel_entry_address(void)
|
||||
unsigned long kernel_entry_address(unsigned long kernel_addr)
|
||||
{
|
||||
unsigned long base = (unsigned long)&kernel_offset - kernel_offset;
|
||||
|
||||
return (unsigned long)&kernel_entry - base + VMLINUX_LOAD_ADDRESS;
|
||||
return (unsigned long)&kernel_entry - base + kernel_addr;
|
||||
}
|
||||
|
@ -37,9 +37,9 @@ static efi_status_t exit_boot_func(struct efi_boot_memmap *map, void *priv)
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
unsigned long __weak kernel_entry_address(void)
|
||||
unsigned long __weak kernel_entry_address(unsigned long kernel_addr)
|
||||
{
|
||||
return *(unsigned long *)(PHYSADDR(VMLINUX_LOAD_ADDRESS) + 8);
|
||||
return *(unsigned long *)(kernel_addr + 8) - VMLINUX_LOAD_ADDRESS + kernel_addr;
|
||||
}
|
||||
|
||||
efi_status_t efi_boot_kernel(void *handle, efi_loaded_image_t *image,
|
||||
@ -73,7 +73,7 @@ efi_status_t efi_boot_kernel(void *handle, efi_loaded_image_t *image,
|
||||
csr_write64(CSR_DMW0_INIT, LOONGARCH_CSR_DMWIN0);
|
||||
csr_write64(CSR_DMW1_INIT, LOONGARCH_CSR_DMWIN1);
|
||||
|
||||
real_kernel_entry = (void *)kernel_entry_address();
|
||||
real_kernel_entry = (void *)kernel_entry_address(kernel_addr);
|
||||
|
||||
real_kernel_entry(true, (unsigned long)cmdline_ptr,
|
||||
(unsigned long)efi_system_table);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user