The generic platform driver pcie-designware-plat.c doesn't work for
UniPhier PCIe host controller, because the controller has some
necessary initialization sequence for the controller-specific logic.
Currently the controller doesn't use "snps,dw-pcie" compatible,
so this is no longer needed. Remove the compatible string from the
pcie node.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042321.4817-10-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
To fix dtbs_check warning:
uniphier-ld20-akebi96.dt.yaml: opp-table0: $nodename:0: 'opp-table0' does not match '^opp-table(-[a-z0-9]+)?$'
From schema: Documentation/devicetree/bindings/opp/opp-v2.yaml
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042321.4817-9-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
PXs3 reference board can change each USB port 0 and 1 to device mode
with jumpers. Prepare devicetree sources for USB port 0 and 1.
This specifies dr_mode, pinctrl, and some quirks and removes nodes for
unused phys and vbus-supply properties.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042321.4817-8-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Add ahci core controller and glue layer nodes including reset-controller
and sata-phy.
This supports for PXs3 and the boards.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042321.4817-7-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Use human-readable definitions for GIC interrupt type and flag, instead of
hard-coding the numbers. No functional change.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042321.4817-6-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
According to gpio-hog schema, should add the suffix "-hog" to the node
names including gpio-hog to fix the following warning.
uniphier-ld11-ref.dtb: gpio@55000000: 'xirq0' does not match any of the regexes: '^.+-hog(-[0-9+)?$', 'pinctrl-[0-9]+'
From schema: Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml
This applies to the devicetre for LD11, LD20 and PXs3 SoCs.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042321.4817-5-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This "usb-glue" stands for an external controller associated with USB core,
however, this is not common. So rename to "usb-controller".
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042321.4817-4-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Actual phy nodes are each child node. The parent node should be
usb-controller node as a representation of the phy integration.
This applies to the devicetree for LD11 SoC.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042321.4817-3-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
The generic platform driver pcie-designware-plat.c doesn't work for
UniPhier PCIe endpoint controller, because the controller has some
necessary initialization sequence for the controller-specific logic.
Currently the controller doesn't use "snps,dw-pcie-ep" compatible,
so this is no longer needed. Remove the compatible string from the
pcie-ep node.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042249.4708-10-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
The dtschema warning:
uniphier-ld11-ref.dt.yaml: system-bus@58c00000: 'interrupt-parent' does not
match any of the regexes: '^.*@[1-5],[1-9a-f][0-9a-f]+$', 'pinctrl-[0-9]+'
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042249.4708-9-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Add ahci core controller and glue layer nodes including reset-controller
and sata-phy.
This supports for PXs2 and the boards without PXs2 vodka board that
doesn't implement any SATA connectors.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042249.4708-8-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Add ahci controller, glue layer, and clock nodes for Pro4 SoC. The glue
layer includes reset and phy, and the clock node is used for handling ahci
clocks on SoC-glue.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042249.4708-7-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Use human-readable definitions for GIC interrupt type and flag, instead of
hard-coding the numbers. No functional change.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042249.4708-6-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
According to gpio-hog schema, should add the suffix "-hog" to the node
names including gpio-hog to fix the following warning.
uniphier-pro4-ref.dtb: gpio@55000000: 'xirq2' does not match any of the regexes: '^.+-hog(-[0-9+)?$', 'pinctrl-[0-9]+'
From schema: Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml
This applies to the devicetree for LD4, LD6b, Pro4 and sLD8 SoCs.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042249.4708-5-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This "usb-glue" stands for an external controller associated with USB core,
however, this is not common. So rename to "usb-controller".
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042249.4708-4-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Actual phy nodes are each child node. The parent node should be
usb-controller node as a representation of the phy integration.
This applies to the devicetree for Pro4 SoC.
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Link: https://lore.kernel.org/r/20220913042249.4708-3-hayashi.kunihiko@socionext.com'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Register GT0_PERF_LIMIT_REASONS (0x1381a8) is available only for
Gen11+. Therefore ensure perf_limit_reasons sysfs files are created only
for Gen11+. Otherwise on Gen < 5 accessing these files results in the
following oops:
<1> [88.829420] BUG: unable to handle page fault for address: ffffc90000bb81a8
<1> [88.829438] #PF: supervisor read access in kernel mode
<1> [88.829447] #PF: error_code(0x0000) - not-present page
This patch is a backport of the drm-tip commit 0d2d201095
("drm/i915: Perf_limit_reasons are only available for Gen11+") to
drm-intel-fixes. The backport is not identical to the original, it only
includes the sysfs portions of if. The debugfs portion is not available
in drm-intel-fixes so has not been backported.
Bspec: 20008
Bug: https://gitlab.freedesktop.org/drm/intel/-/issues/6863
Fixes: fa68bff7cf ("drm/i915/gt: Add sysfs throttle frequency interfaces")
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220919162401.2077713-1-ashutosh.dixit@intel.com
(backported from commit 0d2d201095)
A check for CONFIG_DEBUG_LL_SER3 was added in v2.5.43. But the related
symbol DEBUG_LL_SER3 was already removed in v2.5.8. This check has
always evaluated to false. Remove it.
Signed-off-by: Paul Bolle <pebolle@tiscali.nl>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
To ease debugging of PSCI supported features, add debugfs file called
'psci' describing PSCI and SMC CC versions, enabled features and
options.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Link: https://lore.kernel.org/r/20220926110758.666922-1-dmitry.baryshkov@linaro.org'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
The function psci_pd_try_set_osi_mode() will print an error if enabling
OSI mode fails. To ease debugging PSCI issues print corresponding
message if switching to PC mode fails too.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20220926110249.666813-1-dmitry.baryshkov@linaro.org'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Improvements in Synopsys DesignWare Universal Multi-Protocol Memory
Controller Devicetree bindings. The bindings are being split into
one related to Synopsys core and into quite different derivative Zynq
A05 DDR Memory Controller. Extend the Synopsys bindings with additional
properties to match upcoming new device support (Baikal-T1 support).
-----BEGIN PGP SIGNATURE-----
iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmMxg7EQHGtyemtAa2Vy
bmVsLm9yZwAKCRDBN2bmhouD19vHD/9d4X2BGo+NS4CE0bmarl2Opux6FZ1EIYB0
eKNOLhDL5NvkxQ5bSCRyQ2qydZUWuVDhxOXeOKgQLJNYwFvpIuFLdc126sHzfw0S
OOnwSJyAOt0Y1JrMMsZRkfB8Sn9RTN5IVTfWHWHvx8Vs+S1xd4flXn8LFDCx8Ddn
1N7yCZ3DJYSJWG/bIO0dJTE54gwMueRy8+f2xBrENhkFMf5tRWmcYyY+bOrmwm5k
D1uTQMaQoUfsfOLGx+Ad+In+f2ZZN1AzC4Ych7iUoazUuUNSB76IgbUpTln3atO+
HiuA1FIzYD9/DFF4phdKtgQL61ZwE3dfmsYqGYw/7X5SNPbhOZKzNB49kyKRM2EQ
FMoguTQok5ChR3l+2kqaScYQnHxfNzfXCFkKuTjQsEDgUlLPliFLtN8sNMgimcYi
wAts9bLV9mVpHqIfZ/1bHRo3PfKG4jAnhKSH8VrqUyPYWY5okBTGUHjXMR1t0lOJ
ehMTNdsQhj5MaBBiBFktgP8qg8fxOyFwlyE4+UCFLr5pj1h+3BxZDk3Mnkh2N5rN
v7kOmc3nhQIEtv8528kGarlUtM1Ia6Wpp4Xa+OT9kH2L1zr1be7BFTSAqFEbwyPA
xP8XaKXQt0jssEEE5wNM+5LTg+xFlfidPY3uSy/+HyLwwwN8qxAtDidHZN0Sh82e
bjsdM9KQ0w==
=SQZl
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmM0sGEACgkQmmx57+YA
GNmnzg//S70oLBedGdJa7wIxu7cjv0TEsWG1EJHTX//SvcIONn6Ab3WJ0008DPI8
SRC22BIyqjmNgfBzKG9OBnFc1B9SWLAygg4x3F6/uiczoJ5bSUWAKuAlReH9mqB9
POZKPoDhgMHY9GXM5YexpCskqirlI8VjbxRVlWhQ49hY4oDceamqmPU3r+e+S5Fn
nO+a2bo9YwQ5PwAPE8s95+a3R/5xmDh+5oFHpJL7h3UGRvK8kW8TtUaLJi56/EOG
WNZcGRBasdqJ+YESTsBrpU4ILPqAeImiAXtGACjJG2ERecl1eWqkE5CJvfAk+ZuV
GpcFyL41gHK6aFJHx7JkMpwhaEN3Q6Xn2Kajk8UW/I34IV20wD67IVpYIje33huL
/dcR4IOEHQNDDH3IkcsnZK7Hy8b20dfBo13nTOjiwIiHD0QKJMgAwbz+VWS2Dglv
mBN1dSPfc1Cep7Kvwg8B1P34/BpwWzGKB6gwYK3yYOt4tteJPH39B8Ltba94KGbA
I4EbDNvrS1gDs1IGZcR34zziwL0SQoa2rfwUVCaCoWrsTeceDErggpW6ULDTlFtZ
ca90oupzynihVgza6jqjFQnRWN38Kp5rJxDNBhLgn2DX7u81qPsGZyK2oUBOjMHS
MeJHF7U7txF9KVchow8Y9UjLLuPu1owhroD3TgDnKssT7zBThRw=
=1MoR
-----END PGP SIGNATURE-----
Merge tag 'memory-controller-drv-6.1-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into arm/drivers
Memory controller drivers for v6.1, part 2
Improvements in Synopsys DesignWare Universal Multi-Protocol Memory
Controller Devicetree bindings. The bindings are being split into
one related to Synopsys core and into quite different derivative Zynq
A05 DDR Memory Controller. Extend the Synopsys bindings with additional
properties to match upcoming new device support (Baikal-T1 support).
* tag 'memory-controller-drv-6.1-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl:
dt-bindings: memory: snps,dw-umctl2-ddrc: Extend schema with IRQs/resets/clocks props
dt-bindings: memory: snps,dw-umctl2-ddrc: Replace opencoded numbers with macros
dt-bindings: memory: snps,dw-umctl2-ddrc: Use more descriptive device name
dt-bindings: memory: synopsys,ddrc-ecc: Detach Zynq DDRC controller support
Link: https://lore.kernel.org/r/20220926105023.119781-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
- A long awaited sync to make the config closer to that used by OpenBMC
machines
- Enable PECI to provide defconfig coverage for the subsystem
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEE+nHMAt9PCBDH63wBa3ZZB4FHcJ4FAmMzx10ACgkQa3ZZB4FH
cJ4UdQ/+OIcbowAVEB9YLnnV0Rc0oYVpb/XRyRcluH9iS4aVcOABXeQZzn6dJGvX
LHC5LESC4IMs+ff1hV7ONxyKg0eZ1Si+U/zP9iiOfhDSkHsYGH658ODn5XUhJ0na
vylZ0BCOqHDCxkcUk3LJqsjeYfnSZ7wZtFB4ro6vHnS1IMNcwjivNR9uuc61sfUr
LDvO1kC4kg+GCiM6+16d5AcGH16r1XgYrvPi2WFe96mF2wcJdmj3tfYuR18rhzxp
j5XSXG0P0D/MnMfwWPNppC6VC8N/C9SZs3Jmn4dfH1VFEyZDohVEsuf4ESyFT1dN
SSbKE9CAH2VXzKOsA/ccsKe2HTuHtA2+PUNmQhhuUaR2qzAMMtci1vWRlhAF+3kK
RjNMrgPVQZl9ZI7EaRGcpJhE/QrqDTqux67WCznGMwFT2gH//j1h6+KxmIJ+7MCi
Dw0fhFwbMhqYNf0UbLoZI4zeXGPZ8Qb64PlXVZ3G0DiUgwWbMLWYu2l6t6OxhE/j
i5dbx3c5W1wmqCxZnH1BLJlmqlcqf5iSkRSg4PO84k/+g+tcLUbn8PpU+DlpvODY
L5PtZwG0SS68Y1obRe8e3myDRGUJs+qC8UV+gtrm7OrXID2gBTzr0QtePcgrskkc
hmAcWf5vhH1CqTY8k/cEmgD6mjOFFweJaLpUwIiLuynGprxiF9I=
=DONA
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmM0r80ACgkQmmx57+YA
GNnGzBAAlkYxcNSLwk8hE9IoA0g12bVpEucZJSMvl9T14B8EZVe7PLOR0RwL/FML
l7ajIV4Yj7HdHI857GuIOO6GYsenQBELRDYGyZj7KeB3MrEFsI9oTJjfHH48r0hm
xVoUanUj3VfQBGooP+fTFnw3SLo5ITE+VbVymiKW0ZSdwlM+l8U5x60yeuwJB82E
o27hV+Ct8jzOpQfgnIRbPEMl22GUzGOWRh1McCO6iCidokEyJH07ZolDoAuy8RH9
G6iVuRuHmpEWdF63qLqLDL6mA5n99w6PA/2rbnOghv4jO9iSZ8Yua2/7mO/Q+GF5
xqfuHFQ7Hj/apchSV3qoTW8/yYHvX5nuuwJ22QJ9STF4yaxET6PBeCsMmey8t0kL
N2JgPQl3TtCZ7ibVYXMzDPoLu7nAyDW9AMU/4Z/88dweaHqK8tdaCIm2Z+k4Yw80
ar6gk/fXH4EwOx4USTKE8wJo0Kn7onalESw4I1Ke8NON9bCWfd85p/1ghNbKxhlt
mzNkPyXQ1SaSm3kZjOL1gFuwkflj3I5xwQZBpwNW8dVijD9OU5l2hETEEVHrzjo9
D6BluSUI6sq1ebivq9QXO/u6Am3CgyXhpM813tkd57mGINOPLfHtDqyJHf4zHXUz
yFLjSHrggUj5UWhLtVZeC+QRqYhXlB9jbxHx1RcypX6R06kJF7c=
=exxx
-----END PGP SIGNATURE-----
Merge tag 'aspeed-6.1-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc into arm/defconfig
ASPEED defconfig updates for 6.1
- A long awaited sync to make the config closer to that used by OpenBMC
machines
- Enable PECI to provide defconfig coverage for the subsystem
* tag 'aspeed-6.1-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc:
ARM: config: aspeed_g5: Enable PECI
ARM: configs: aspeed_g4: Remove appended DTB and ATAG
ARM: configs: aspeed: Refresh defconfigs
ARM: config: aspeed: Enable namespaces
ARM: configs: aspeed_g4: Enable IPV6 options
ARM: configs: aspeed_g4: Enable OCC and NBD drivers
ARM: configs: aspeed_g5: Enable MCTP stack
ARM: configs: aspeed_g5: Add PL2303 USB serial driver
ARM: configs: aspeed_g5: Add TPM TIS I2C driver
ARM: configs: aspeed_g5: Add mp5023 driver
ARM: configs: aspeed: Add support for USB flash drives
Link: https://lore.kernel.org/r/CACPK8XeLzL3hT8fwVw9fV7Ccduz_PNhZn_67z2yXefCEha6jJg@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
On arm32, the configuration options to specify the kernel command line
type depend on ATAGS. However, the actual CMDLINE cofiguration option
does not depend on ATAGS, and the code that handles this is not specific
to ATAGS (see drivers/of/fdt.c:early_init_dt_scan_chosen()).
Hence users who desire to override the kernel command line on arm32 must
enable support for ATAGS, even on a pure-DT system. Other architectures
(arm64, loongarch, microblaze, nios2, powerpc, and riscv) do not impose
such a restriction.
Hence drop the dependency on ATAGS.
Fixes: bd51e2f595 ("ARM: 7506/1: allow for ATAGS to be configured out when DT support is selected")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
On older platforms that boot an image with an appended DTB, or where
the boot loader has no support for updating chosen/bootargs, it is
common to rely on CMDLINE_FORCE.
While a fixed command line can make the kernel unbootable on other
platforms, it is not guaranteed to cause that. E.g. all Renesas boards
use the same chosen/bootargs in upstream DTS, which works fine if your
DHCP server hands out proper nfsroot parameters.
Fixes: 84fc863606 ("ARM: make ARCH_MULTIPLATFORM user-visible")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
According to s5k6a3 driver code, the reset line for the chip appears to
be active low. This also matches the typical polarity of reset lines in
general. Let's fix it up as having correct polarity in DTS is important
when the driver will be switched over to gpiod API.
Fixes: b4fec64758 ("ARM: dts: Add camera device nodes for Exynos4412 TRATS2 board")
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20220913164104.203957-1-dmitry.torokhov@gmail.com
Link: https://lore.kernel.org/r/20220926104354.118578-2-krzysztof.kozlowski@linaro.org'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
DSI support for rk356x, display-gamma-control for rk3399, display
output for quartz64-b and rk3566-roc-pc, hdmi supplies for rk3399-roc-pc,
some pinctrl improvements for the px30-evb and a number of changes to
bring rk3399 rock4 and rock-pi4 structure closer to names used in schematics.
-----BEGIN PGP SIGNATURE-----
iQFEBAABCAAuFiEE7v+35S2Q1vLNA3Lx86Z5yZzRHYEFAmMvDVkQHGhlaWtvQHNu
dGVjaC5kZQAKCRDzpnnJnNEdgdM7B/0XJOFHfOczgScJ/U0lGKOSdyunaBKxjzJ5
Hdz9Zy7SaW0NztHJA8F5TY+Llw6VKR0jULhcJ/HFxQlAlVKlLyQBpL0K71+9evo/
3EKugxgwWTXVUeCycVRIBcHTCB0F2lrITCTudTyA3C+sJWOOX9NJyccQXnwFtf/D
ScQpIEXGB6/iiU9mTup/JY48HiojnXeJLQsXGos+4D+nY9Pm+KwKhpGlBLvNjf/D
wvmGJTgcuDkoXoPHQ15vvUjUbYrqIIehV7s3zKJSTVjZ7upOcDXsnN/CZBtrYiac
HghziTm5Bn66aNY2Q5/iQ8u3a5Vgxx7+li1SR3+iwCr1YERIDjEA
=nNLu
-----END PGP SIGNATURE-----
gpgsig -----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmM0re0ACgkQmmx57+YA
GNk5pw/9EShdi6HdhH60llnYSH3tAwnLFNUCKkQ0ZrDyINRcGLCyiEgxayy1pVyU
zc6yTlpH1Irjc3nv5pNPme8mOItw5V78Jb04rA1g/Oie/hQ/hLA6JOP86fzdiDEN
Rbt24llOSExStEBePBFwV87Adt60K6HCIE5MNfX+qW97YMpacyiTSbbee19AcliN
mhYskbZPmuMSO3yMYkHYbJa9yzYqxq+ccipz8AcJFLXvlTIrM/MfgYSp+zCHnaRW
/6r0ApfA7FvUXMkBKXNeAL4yh5jKmfFB+wQuYY9z0AvB53oBxGKmDubMrY3IdT2Q
LBaoiIQG/5oz3DBWRZe9RxWusIyacgyInaNBcAYiPMnInb2dL9XCgMlOemPRTQLO
NavC1cA+TXXAMmgISTnGFeVCYcIY8F8KkfWWAobpjnzKrdic6axncl8eiAK80JOT
yM6yS7lDnWtIWCUq4zgkJxCnFD4PtUHOwusz0wurrwiSz5TveESKDyOnQ6evSqry
ka6UdN2DtX8Dd7c6vTtu0labY8o2Qdz6r2N+ooRAhaujhh9tYA59Yxrp9pV8cwJe
ysHvbJBJLpE/lEbHYNPWqz2lOyPJ+JWj9s3aPn7jDv+gOxmP8z1NdbTVpcSRJj0B
T4c6cMoQ6PyF5P11vUg7nKJ0JNH8/dUYUgPur/qL60O6JIbiFXE=
=oYll
-----END PGP SIGNATURE-----
Merge tag 'v6.1-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/dt
RK3399-Nanopi-R4S-enterprise as variant board, Gru-Scarlet SKU variants,
DSI support for rk356x, display-gamma-control for rk3399, display
output for quartz64-b and rk3566-roc-pc, hdmi supplies for rk3399-roc-pc,
some pinctrl improvements for the px30-evb and a number of changes to
bring rk3399 rock4 and rock-pi4 structure closer to names used in schematics.
* tag 'v6.1-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip:
arm64: dts: rockchip: use pin constant for reset-gpios on px30-evb
arm64: dts: rockchip: add pinctrl for mipi-pdn pin on px30-evb
arm64: dts: rockchip: set max drive-strength for cif_clkout_m0 on px30-evb
arm64: dts: rockchip: add avdd-0v9-supply and avdd-1v8-supply on rk3399 rock 4c and pi4
arm64: dts: rockchip: sort nodes/properties on rk3399-rock-4
arm64: dts: rockchip: fix regulator name on rk3399-rock-4
arm64: dts: rockchip: sort nodes/properties on rk3399-rock-4c-plus
arm64: dts: rockchip: fix regulator structure on rk3399-rock-4c-plus
arm64: dts: rockchip: connect vcca_1v8 to APIO5_VDD on rk3399-rock-4c-plus
arm64: dts: rockchip: Add DSI and DSI-DPHY nodes to rk356x
arm64: dts: rockchip: Enable HDMI and GPU on quartz64-b
arm64: dts: rockchip: Add RK3399 NanoPi R4S Enterprise Edition
dt-bindings: Add doc for FriendlyARM NanoPi R4S Enterprise Edition
arm64: dts: rockchip: add i2s0 I2S/PDM/TDM 8ch controller to px30
arm64: dts: rockchip: Add HDMI supplies on rk3399-roc-pc
arm64: dts: rockchip: Support gru-scarlet sku{2,4} variants
dt-bindings: arm: rockchip: Add gru-scarlet sku{2,4} variants
arm64: dts: rockchip: enable gamma control on RK3399
arm64: dts: rockchip: Enable video output on rk3566-roc-pc
Link: https://lore.kernel.org/r/38114097.10thIPus4b@phil
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
There is no dedicate parent clock for QSPI so SET_RATE_PARENT flag
should not be used. For instance, the default parent clock for QSPI is
pll2_bus, which is also the parent clock for quite a few modules, such
as MMDC, once GPMI NAND set clock rate for EDO5 mode can cause system
hang due to pll2_bus rate changed.
Fixes: f1541e15e3 ("clk: imx6sx: Switch to clk_hw based API")
Signed-off-by: Han Xu <han.xu@nxp.com>
Link: https://lore.kernel.org/r/20220915150959.3646702-1-han.xu@nxp.com
Tested-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Abel Vesa <abel.vesa@linaro.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
This is useful on !virt platforms for kexec, so change things from
BI_VIRT_RNG_SEED to be BI_RNG_SEED, and simply remove BI_VIRT_RNG_SEED
because it only ever lasted one release, and nothing is broken by not
having it. At the same time, keep a comment noting that it's been
removed, so that ID isn't reused. In addition, we previously documented
2-byte alignment, but 4-byte alignment is actually necessary, so update
that comment.
Suggested-by: Geert Uytterhoeven <geert@linux-m68k.org>
Fixes: a1ee38ab1a ("m68k: virt: Use RNG seed from bootinfo block")
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Link: https://lore.kernel.org/r/20220927130835.1629806-2-Jason@zx2c4.com
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
The RNG seed boot record is memzeroed after processing, in order to
preserve forward secrecy. By saving the bootinfo for procfs prior to
that, forward secrecy is violated, since it becomes possible to recover
past states. So, save the bootinfo block only after first processing
them.
Fixes: a1ee38ab1a ("m68k: virt: Use RNG seed from bootinfo block")
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Link: https://lore.kernel.org/r/20220927130835.1629806-1-Jason@zx2c4.com
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Microchip pci1xxxx is an unmanaged PCIe3.1a Switch for Consumer,
Industrial and Automotive applications. This switch has multiple
downstream ports. In one of the Switch's Downstream port, there
is a multifunction endpoint for peripherals which includes an I2C
host controller. The I2C function in the endpoint operates at 100KHz,
400KHz and 1 MHz and has buffer depth of 128 bytes.
This patch provides the I2C controller driver for the I2C function
of the switch.
Signed-off-by: Tharun Kumar P <tharunkumar.pasumarthi@microchip.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
If the number of AMD gp counters continues to grow, the code will
be very clumsy and the switch-case design of inline get_gp_pmc_amd()
will also bloat the kernel text size.
The target code is taught to manage two groups of MSRs, each
representing a different version of the AMD PMU counter MSRs.
The MSR addresses of each group are contiguous, with no holes,
and there is no intersection between two sets of addresses,
but they are discrete in functionality by design like this:
[Group A : All counter MSRs are tightly bound to all event select MSRs ]
MSR_K7_EVNTSEL0 0xc0010000
MSR_K7_EVNTSELi 0xc0010000 + i
...
MSR_K7_EVNTSEL3 0xc0010003
MSR_K7_PERFCTR0 0xc0010004
MSR_K7_PERFCTRi 0xc0010004 + i
...
MSR_K7_PERFCTR3 0xc0010007
[Group B : The counter MSRs are interleaved with the event select MSRs ]
MSR_F15H_PERF_CTL0 0xc0010200
MSR_F15H_PERF_CTR0 (0xc0010200 + 1)
...
MSR_F15H_PERF_CTLi (0xc0010200 + 2 * i)
MSR_F15H_PERF_CTRi (0xc0010200 + 2 * i + 1)
...
MSR_F15H_PERF_CTL5 (0xc0010200 + 2 * 5)
MSR_F15H_PERF_CTR5 (0xc0010200 + 2 * 5 + 1)
Rewrite get_gp_pmc_amd() in this way: first determine which group of
registers is accessed, then determine if it matches its requested type,
applying different scaling ratios respectively, and finally get pmc_idx
to pass into amd_pmc_idx_to_pmc().
Signed-off-by: Like Xu <likexu@tencent.com>
Link: https://lore.kernel.org/r/20220831085328.45489-8-likexu@tencent.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Access PMU counters on AMD by directly indexing the array of general
purpose counters instead of translating the PMC index to an MSR index.
AMD only supports gp counters, there's no need to translate a PMC index
to an MSR index and back to a PMC index.
Opportunistically apply array_index_nospec() to reduce the attack
surface for speculative execution and remove the dead code.
Signed-off-by: Like Xu <likexu@tencent.com>
Link: https://lore.kernel.org/r/20220831085328.45489-7-likexu@tencent.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
The check logic in the pmc_resume_counter() to determine whether
a perf_event is reusable is partial and flawed, especially when it
comes to a pseudocode sequence (contrived, but valid) like:
- enabling a counter and its PEBS bit
- enable global_ctrl
- run workload
- disable only the PEBS bit, leaving the global_ctrl bit enabled
In this corner case, a perf_event created for PEBS can be reused by
a normal counter before it has been released and recreated, and when this
normal counter overflows, it triggers a PEBS interrupt (precise_ip != 0).
To address this issue, reprogram all affected counters when PEBS_ENABLE
change and reuse a counter if and only if PEBS exactly matches precise.
Fixes: 79f3e3b583 ("KVM: x86/pmu: Reprogram PEBS event to emulate guest PEBS counter")
Signed-off-by: Like Xu <likexu@tencent.com>
Link: https://lore.kernel.org/r/20220831085328.45489-4-likexu@tencent.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Extract the "global ctrl" specific bits out of global_ctrl_changed() so
that the helper only deals with reprogramming general purpose counters,
and rename the helper accordingly. PEBS needs the same logic, i.e needs
to reprogram counters associated when PEBS_ENABLE bits are toggled, and
will use the helper in a future fix.
No functional change intended.
Signed-off-by: Like Xu <likexu@tencent.com>
Link: https://lore.kernel.org/r/20220831085328.45489-4-likexu@tencent.com
[sean: split to separate patch, write changelog]
Signed-off-by: Sean Christopherson <seanjc@google.com>
KVM will accumulate an enabled counter for at least INSTRUCTIONS or
BRANCH_INSTRUCTION hw event from any KVM emulated instructions,
generating emulated overflow interrupt on counter overflow, which
in theory should also happen when the PEBS counter overflows but
it currently lacks this part of the underlying support (e.g. through
software injection of records in the irq context or a lazy approach).
In this case, KVM skips the injection of this BUFFER_OVF PMI (effectively
dropping one PEBS record) and let the overflow counter move on. The loss
of a single sample does not introduce a loss of accuracy, but is easily
noticeable for certain specific instructions.
This issue is expected to be addressed along with the issue
of PEBS cross-mapped counters with a slow-path proposal.
Fixes: 79f3e3b583 ("KVM: x86/pmu: Reprogram PEBS event to emulate guest PEBS counter")
Signed-off-by: Like Xu <likexu@tencent.com>
Link: https://lore.kernel.org/r/20220831085328.45489-3-likexu@tencent.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
In the extreme case of host counters multiplexing and contention, the
perf_event requested by the guest's pebs counter is not allocated to any
actual physical counter, in which case hw.idx is bookkept as -1,
resulting in an out-of-bounds access to host_cross_mapped_mask.
Fixes: 854250329c ("KVM: x86/pmu: Disable guest PEBS temporarily in two rare situations")
Signed-off-by: Like Xu <likexu@tencent.com>
Link: https://lore.kernel.org/r/20220831085328.45489-2-likexu@tencent.com
[sean: expand comment to explain how a negative idx can be encountered]
Signed-off-by: Sean Christopherson <seanjc@google.com>
Bits 27 through 31 in Hyper-V hypercall 'control' are reserved (see
HV_HYPERCALL_RSVD0_MASK) but '0xdeadbeef' includes them. This causes
KVM to return HV_STATUS_INVALID_HYPERCALL_INPUT instead of the expected
HV_STATUS_INVALID_HYPERCALL_CODE.
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Link: https://lore.kernel.org/all/87fsgjol20.fsf@redhat.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Load RAX with -EFAULT prior to making a Hyper-V hypercall so that tests
can't get false negatives due to the compiler coincidentally loading the
"right" value into RAX, i.e. to ensure that _KVM_ and not the compiler
is correctly clearing RAX on a successful hypercall.
Note, initializing *hv_status (in C code) to -EFAULT is not sufficient
to avoid false negatives, as the compiler can still "clobber" RAX and
thus load garbage into *hv_status if the hypercall faults (or if KVM
doesn't set RAX).
Suggested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Vipin Sharma <vipinsh@google.com>
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Link: https://lore.kernel.org/r/20220922062451.2927010-1-vipinsh@google.com
[sean: move to separate patch, massage changelog]
Signed-off-by: Sean Christopherson <seanjc@google.com>
Commit cc5851c6be ("KVM: selftests: Use exception fixup for #UD/#GP
Hyper-V MSR/hcall tests") introduced a wrong guest assert in guest_hcall().
It is not checking the successful hypercall results and only checks the
result when a fault happens.
GUEST_ASSERT_2(!hcall->ud_expected || res == hcall->expect,
hcall->expect, res);
Correct the assertion by only checking results of the successful
hypercalls.
This issue was observed when this test started failing after building it
in Clang. Above guest assert statement fails because "res" is not equal
to "hcall->expect" when "hcall->ud_expected" is true. "res" gets some
garbage value in Clang from the RAX register. In GCC, RAX is 0 because
it using RAX for @output_address in the asm statement and resetting it
to 0 before using it as output operand in the same asm statement. Clang
is not using RAX for @output_address.
Fixes: cc5851c6be ("KVM: selftests: Use exception fixup for #UD/#GP Hyper-V MSR/hcall tests")
Signed-off-by: Vipin Sharma <vipinsh@google.com>
Suggested-by: Sean Christopherson <seanjc@google.com>
Reviewed-by: Jim Mattson <jmattson@google.com>
Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Link: https://lore.kernel.org/r/20220922062451.2927010-1-vipinsh@google.com
[sean: wrap changelog at ~75 chars, move -EFAULT change to separate patch]
Signed-off-by: Sean Christopherson <seanjc@google.com>
Move the build rules of vmlinux.o out of scripts/link-vmlinux.sh to
clearly separate 1) pre-modpost, 2) modpost, 3) post-modpost stages.
This will make further refactoring possible.
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
.vmlinux.objs is used by modpost, so scripts/Makefile.modpost is
a better place to generate it.
It is used only when CONFIG_MODVERSIONS=y. It should be guarded
by "ifdef CONFIG_MODVERSIONS".
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>
In case backend is not ready, ie: fail to wakeup or initialization, on
the returning of the I2C_SLAVE_WRITE_REQUESTED event, bus driver should
aware the backend status and might auto sending NACK on the next
incoming bytes for I2C master to retry.
Signed-off-by: Quan Nguyen <quan@os.amperecomputing.com>
Links:https://lore.kernel.org/linux-arm-kernel/556fa9e1-c54b-8370-4de7-c2d3ec7d6906@os.amperecomputing.com/
[wsa: made some wording more precise]
Signed-off-by: Wolfram Sang <wsa@kernel.org>
Use the ordinary obj-y syntax to list subdirectories.
Note1:
Previously, the link order of lib-y depended on CONFIG_MODULES; lib-y
was linked before drivers-y when CONFIG_MODULES=y, otherwise after
drivers-y. This was a bug of commit 7273ad2b08 ("kbuild: link lib-y
objects to vmlinux forcibly when CONFIG_MODULES=y"), but it was not a
big deal after all. Now, all objects listed in lib-y are linked last,
irrespective of CONFIG_MODULES.
Note2:
Finally, the single target build in arch/*/lib/ works correctly. There was
a bug report about this. [1]
$ make ARCH=arm arch/arm/lib/findbit.o
CALL scripts/checksyscalls.sh
AS arch/arm/lib/findbit.o
[1]: https://lore.kernel.org/linux-kbuild/YvUQOwL6lD4%2F5%2FU6@shell.armlinux.org.uk/
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Reviewed-by: Nicolas Schier <nicolas@fjasle.eu>