mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 06:00:52 +07:00
Devicetree fixes for v5.7:
- Fix warnings from enabling more dtc warnings which landed in the merge window and didn't get fixed in time. - Fix some document references from DT schema conversions - Fix kmemleak errors in DT unittests -----BEGIN PGP SIGNATURE----- iQJEBAABCgAuFiEEktVUI4SxYhzZyEuo+vtdtY28YcMFAl6Zz40QHHJvYmhAa2Vy bmVsLm9yZwAKCRD6+121jbxhw+UdD/4zVtSSRIAPr7B1DjlY8ljZkI4fCWjtEzgq B/GifTV9bjNsLNt2MKwmHar95R9kmBWHGHNfYQUoh939XN+h/MZyP4lgnLfvCZQ1 0y1dgVFsTEhtmUa3MCPCSHWlHkpkIuuVj8rSspIuE809WBpuEE5ddWcUfAUw2RcJ sCA8cHmH55/Ki42+geAy3LW1BuJROXwMvPSZHQTbO7vZpE6cWyCzAxZ1RSgmDOse rlUzcI6xXwM56HdlM39qkN7zAA6EzZ+bH8kcPf0ZbY/qS5umQWDczKaB3ixo3OaL 8z3c1ohVFt9kmbMPNz3+LCGD2xisGGfM967bBacBFIbNC1e9wcvHWoReoPaCuXYi WLyP1j3qx+joSDRs+SMzMNtJmD19CjsCdzr61werUtyVU733KMM4ZGce/gTKlyeg GF/+Y/EWua1EwKPbHPhXVzS+Y2Ps9xUuxW2BYw2u78UTy8a4Mklahkg9JntsAZUr xs3rhYrFsHdQsxSatXQmxpROZEydreNzMx8+QzhTmVhEUS3xcLouJ1liv8GZph7M cnySJkl74cmnRHMDZQGw+PdpPGGPo3PjvTDwbpfosrMeO50f8eAZijnq3Eqc9OLB vmHWPVhWiss/Z4O9eWgklxUUyQd7YoJvfvSH/3EkNpqV4OuHhh+RwgTB6lwQGgdu 1Acc1U7olw== =qdNV -----END PGP SIGNATURE----- Merge tag 'devicetree-fixes-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull devicetree fixes from Rob Herring: - Fix warnings from enabling more dtc warnings which landed in the merge window and didn't get fixed in time. - Fix some document references from DT schema conversions - Fix kmemleak errors in DT unittests * tag 'devicetree-fixes-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (23 commits) kbuild: check libyaml installation for 'make dt_binding_check' of: unittest: kmemleak in duplicate property update of: overlay: kmemleak in dup_and_fixup_symbol_prop() of: unittest: kmemleak in of_unittest_overlay_high_level() of: unittest: kmemleak in of_unittest_platform_populate() of: unittest: kmemleak on changeset destroy MAINTAINERS: dt: fix pointers for ARM Integrator, Versatile and RealView MAINTAINERS: dt: update display/allwinner file entry dt-bindings: iio: dac: AD5570R fix bindings errors dt-bindings: Fix misspellings of "Analog Devices" dt-bindings: pwm: Fix cros-ec-pwm example dtc 'reg' warning docs: dt: rockchip,dwc3.txt: fix a pointer to a renamed file docs: dt: fix a broken reference for a file converted to json docs: dt: qcom,dwc3.txt: fix cross-reference for a converted file docs: dt: fix broken reference to phy-cadence-torrent.yaml dt-bindings: interrupt-controller: Fix loongson,parent_int_map property schema dt-bindings: hwmon: Fix incorrect $id paths dt-bindings: Fix dtc warnings on reg and ranges in examples dt-bindings: BD718x7 - add missing I2C bus properties dt-bindings: clock: syscon-icst: Remove unneeded unit name ...
This commit is contained in:
commit
8fce9058ca
@ -42,6 +42,10 @@ properties:
|
||||
description:
|
||||
See section 2.3.9 of the DeviceTree Specification.
|
||||
|
||||
'#address-cells': true
|
||||
|
||||
'#size-cells': true
|
||||
|
||||
required:
|
||||
- "#interconnect-cells"
|
||||
- compatible
|
||||
@ -59,6 +63,8 @@ examples:
|
||||
compatible = "allwinner,sun5i-a13-mbus";
|
||||
reg = <0x01c01000 0x1000>;
|
||||
clocks = <&ccu CLK_MBUS>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
dma-ranges = <0x00000000 0x40000000 0x20000000>;
|
||||
#interconnect-cells = <1>;
|
||||
};
|
||||
|
@ -91,7 +91,7 @@ required:
|
||||
|
||||
examples:
|
||||
- |
|
||||
vco1: clock@00 {
|
||||
vco1: clock {
|
||||
compatible = "arm,impd1-vco1";
|
||||
#clock-cells = <0>;
|
||||
lock-offset = <0x08>;
|
||||
|
@ -1,5 +1,5 @@
|
||||
Analog Device ADV7123 Video DAC
|
||||
-------------------------------
|
||||
Analog Devices ADV7123 Video DAC
|
||||
--------------------------------
|
||||
|
||||
The ADV7123 is a digital-to-analog converter that outputs VGA signals from a
|
||||
parallel video input.
|
||||
|
@ -1,5 +1,5 @@
|
||||
Analog Device ADV7511(W)/13/33/35 HDMI Encoders
|
||||
-----------------------------------------
|
||||
Analog Devices ADV7511(W)/13/33/35 HDMI Encoders
|
||||
------------------------------------------------
|
||||
|
||||
The ADV7511, ADV7511W, ADV7513, ADV7533 and ADV7535 are HDMI audio and video
|
||||
transmitters compatible with HDMI 1.4 and DVI 1.0. They support color space
|
||||
|
@ -1,4 +1,4 @@
|
||||
Analog Device AXI-DMAC DMA controller
|
||||
Analog Devices AXI-DMAC DMA controller
|
||||
|
||||
Required properties:
|
||||
- compatible: Must be "adi,axi-dmac-1.00.a".
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Copyright 2019 Analog Devices Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/bindings/hwmon/adi,axi-fan-control.yaml#
|
||||
$id: http://devicetree.org/schemas/hwmon/adi,axi-fan-control.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AXI FAN Control Device Tree Bindings
|
||||
@ -47,7 +47,7 @@ required:
|
||||
|
||||
examples:
|
||||
- |
|
||||
fpga_axi: fpga-axi@0 {
|
||||
fpga_axi: fpga-axi {
|
||||
#address-cells = <0x2>;
|
||||
#size-cells = <0x1>;
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/adt7475.yaml#
|
||||
$id: http://devicetree.org/schemas/hwmon/adt7475.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: ADT7475 hwmon sensor
|
||||
|
@ -1,4 +1,4 @@
|
||||
* Analog Device AD5755 IIO Multi-Channel DAC Linux Driver
|
||||
* Analog Devices AD5755 IIO Multi-Channel DAC Linux Driver
|
||||
|
||||
Required properties:
|
||||
- compatible: Has to contain one of the following:
|
||||
|
@ -2,7 +2,7 @@
|
||||
# Copyright 2020 Analog Devices Inc.
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/bindings/iio/dac/adi,ad5770r.yaml#
|
||||
$id: http://devicetree.org/schemas/iio/dac/adi,ad5770r.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Analog Devices AD5770R DAC device driver
|
||||
@ -49,93 +49,86 @@ properties:
|
||||
asserted during driver probe.
|
||||
maxItems: 1
|
||||
|
||||
channel0:
|
||||
channel@0:
|
||||
description: Represents an external channel which are
|
||||
connected to the DAC. Channel 0 can act both as a current
|
||||
source and sink.
|
||||
type: object
|
||||
|
||||
properties:
|
||||
num:
|
||||
reg:
|
||||
description: This represents the channel number.
|
||||
items:
|
||||
const: 0
|
||||
const: 0
|
||||
|
||||
adi,range-microamp:
|
||||
description: Output range of the channel.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/int32-array
|
||||
- items:
|
||||
- enum: [0 300000]
|
||||
- enum: [-60000 0]
|
||||
- enum: [-60000 300000]
|
||||
- const: 0
|
||||
- const: 300000
|
||||
- items:
|
||||
- const: -60000
|
||||
- const: 0
|
||||
- items:
|
||||
- const: -60000
|
||||
- const: 300000
|
||||
|
||||
channel1:
|
||||
channel@1:
|
||||
description: Represents an external channel which are
|
||||
connected to the DAC.
|
||||
type: object
|
||||
|
||||
properties:
|
||||
num:
|
||||
reg:
|
||||
description: This represents the channel number.
|
||||
items:
|
||||
const: 1
|
||||
const: 1
|
||||
|
||||
adi,range-microamp:
|
||||
description: Output range of the channel.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
- items:
|
||||
- enum: [0 140000]
|
||||
- enum: [0 250000]
|
||||
items:
|
||||
- const: 0
|
||||
- enum: [ 140000, 250000 ]
|
||||
|
||||
channel2:
|
||||
channel@2:
|
||||
description: Represents an external channel which are
|
||||
connected to the DAC.
|
||||
type: object
|
||||
|
||||
properties:
|
||||
num:
|
||||
reg:
|
||||
description: This represents the channel number.
|
||||
items:
|
||||
const: 2
|
||||
const: 2
|
||||
|
||||
adi,range-microamp:
|
||||
description: Output range of the channel.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
- items:
|
||||
- enum: [0 140000]
|
||||
- enum: [0 250000]
|
||||
items:
|
||||
- const: 0
|
||||
- enum: [ 55000, 150000 ]
|
||||
|
||||
patternProperties:
|
||||
"^channel@([3-5])$":
|
||||
type: object
|
||||
description: Represents the external channels which are connected to the DAC.
|
||||
properties:
|
||||
num:
|
||||
reg:
|
||||
description: This represents the channel number.
|
||||
items:
|
||||
minimum: 3
|
||||
maximum: 5
|
||||
minimum: 3
|
||||
maximum: 5
|
||||
|
||||
adi,range-microamp:
|
||||
description: Output range of the channel.
|
||||
oneOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
- items:
|
||||
- enum: [0 45000]
|
||||
- enum: [0 100000]
|
||||
items:
|
||||
- const: 0
|
||||
- enum: [ 45000, 100000 ]
|
||||
|
||||
required:
|
||||
- reg
|
||||
- diff-channels
|
||||
- channel0
|
||||
- channel1
|
||||
- channel2
|
||||
- channel3
|
||||
- channel4
|
||||
- channel5
|
||||
- channel@0
|
||||
- channel@1
|
||||
- channel@2
|
||||
- channel@3
|
||||
- channel@4
|
||||
- channel@5
|
||||
|
||||
examples:
|
||||
- |
|
||||
@ -144,40 +137,42 @@ examples:
|
||||
#size-cells = <0>;
|
||||
|
||||
ad5770r@0 {
|
||||
compatible = "ad5770r";
|
||||
compatible = "adi,ad5770r";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <1000000>;
|
||||
vref-supply = <&vref>;
|
||||
adi,external-resistor;
|
||||
reset-gpios = <&gpio 22 0>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
channel@0 {
|
||||
num = <0>;
|
||||
adi,range-microamp = <(-60000) 300000>;
|
||||
reg = <0>;
|
||||
adi,range-microamp = <0 300000>;
|
||||
};
|
||||
|
||||
channel@1 {
|
||||
num = <1>;
|
||||
reg = <1>;
|
||||
adi,range-microamp = <0 140000>;
|
||||
};
|
||||
|
||||
channel@2 {
|
||||
num = <2>;
|
||||
reg = <2>;
|
||||
adi,range-microamp = <0 55000>;
|
||||
};
|
||||
|
||||
channel@3 {
|
||||
num = <3>;
|
||||
reg = <3>;
|
||||
adi,range-microamp = <0 45000>;
|
||||
};
|
||||
|
||||
channel@4 {
|
||||
num = <4>;
|
||||
reg = <4>;
|
||||
adi,range-microamp = <0 45000>;
|
||||
};
|
||||
|
||||
channel@5 {
|
||||
num = <5>;
|
||||
reg = <5>;
|
||||
adi,range-microamp = <0 45000>;
|
||||
};
|
||||
};
|
||||
|
@ -109,7 +109,7 @@ examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
i2c@00000000 {
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
edt-ft5x06@38 {
|
||||
|
@ -56,9 +56,8 @@ properties:
|
||||
cell with zero.
|
||||
allOf:
|
||||
- $ref: /schemas/types.yaml#/definitions/uint32-array
|
||||
- items:
|
||||
minItems: 4
|
||||
maxItems: 4
|
||||
- minItems: 4
|
||||
maxItems: 4
|
||||
|
||||
|
||||
required:
|
||||
|
@ -97,30 +97,35 @@ examples:
|
||||
#include <dt-bindings/clock/tegra186-clock.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
memory-controller@2c00000 {
|
||||
compatible = "nvidia,tegra186-mc";
|
||||
reg = <0x0 0x02c00000 0x0 0xb0000>;
|
||||
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
bus {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
ranges = <0x0 0x02c00000 0x02c00000 0x0 0xb0000>;
|
||||
memory-controller@2c00000 {
|
||||
compatible = "nvidia,tegra186-mc";
|
||||
reg = <0x0 0x02c00000 0x0 0xb0000>;
|
||||
interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
|
||||
|
||||
/*
|
||||
* Memory clients have access to all 40 bits that the memory
|
||||
* controller can address.
|
||||
*/
|
||||
dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x0>;
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
external-memory-controller@2c60000 {
|
||||
compatible = "nvidia,tegra186-emc";
|
||||
reg = <0x0 0x02c60000 0x0 0x50000>;
|
||||
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&bpmp TEGRA186_CLK_EMC>;
|
||||
clock-names = "emc";
|
||||
ranges = <0x0 0x02c00000 0x0 0x02c00000 0x0 0xb0000>;
|
||||
|
||||
nvidia,bpmp = <&bpmp>;
|
||||
/*
|
||||
* Memory clients have access to all 40 bits that the memory
|
||||
* controller can address.
|
||||
*/
|
||||
dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x0>;
|
||||
|
||||
external-memory-controller@2c60000 {
|
||||
compatible = "nvidia,tegra186-emc";
|
||||
reg = <0x0 0x02c60000 0x0 0x50000>;
|
||||
interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>;
|
||||
clocks = <&bpmp TEGRA186_CLK_EMC>;
|
||||
clock-names = "emc";
|
||||
|
||||
nvidia,bpmp = <&bpmp>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -123,7 +123,9 @@ examples:
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
i2c {
|
||||
pmic: pmic@4b {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic: pmic@4b {
|
||||
compatible = "rohm,bd71837";
|
||||
reg = <0x4b>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
|
@ -128,7 +128,9 @@ examples:
|
||||
#include <dt-bindings/leds/common.h>
|
||||
|
||||
i2c {
|
||||
pmic: pmic@4b {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic: pmic@4b {
|
||||
compatible = "rohm,bd71847";
|
||||
reg = <0x4b>;
|
||||
interrupt-parent = <&gpio1>;
|
||||
|
@ -274,7 +274,7 @@ examples:
|
||||
- |
|
||||
#include <dt-bindings/mfd/st,stpmic1.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
i2c@0 {
|
||||
i2c {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
pmic@33 {
|
||||
|
@ -48,6 +48,7 @@ examples:
|
||||
|
||||
switch@10 {
|
||||
compatible = "qca,qca8337";
|
||||
reg = <0x10>;
|
||||
/* ... */
|
||||
};
|
||||
};
|
||||
|
@ -29,7 +29,7 @@ Required properties for compatible string qcom,wcn399x-bt:
|
||||
|
||||
Optional properties for compatible string qcom,wcn399x-bt:
|
||||
|
||||
- max-speed: see Documentation/devicetree/bindings/serial/slave-device.txt
|
||||
- max-speed: see Documentation/devicetree/bindings/serial/serial.yaml
|
||||
- firmware-name: specify the name of nvm firmware to load
|
||||
- clocks: clock provided to the controller
|
||||
|
||||
|
@ -146,7 +146,7 @@ patternProperties:
|
||||
bindings specified in
|
||||
Documentation/devicetree/bindings/phy/phy-cadence-sierra.txt
|
||||
Torrent SERDES should follow the bindings specified in
|
||||
Documentation/devicetree/bindings/phy/phy-cadence-dp.txt
|
||||
Documentation/devicetree/bindings/phy/phy-cadence-torrent.yaml
|
||||
|
||||
required:
|
||||
- compatible
|
||||
|
@ -31,10 +31,17 @@ additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
cros-ec@0 {
|
||||
compatible = "google,cros-ec-spi";
|
||||
cros_ec_pwm: ec-pwm {
|
||||
compatible = "google,cros-ec-pwm";
|
||||
#pwm-cells = <1>;
|
||||
spi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
cros-ec@0 {
|
||||
compatible = "google,cros-ec-spi";
|
||||
reg = <0>;
|
||||
|
||||
cros_ec_pwm: ec-pwm {
|
||||
compatible = "google,cros-ec-pwm";
|
||||
#pwm-cells = <1>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -39,7 +39,7 @@ additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
rng {
|
||||
rng@7e104000 {
|
||||
compatible = "brcm,bcm2835-rng";
|
||||
reg = <0x7e104000 0x10>;
|
||||
interrupts = <2 29>;
|
||||
|
@ -61,7 +61,7 @@ examples:
|
||||
#include <dt-bindings/clock/qcom,gcc-sdm845.h>
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
soc: soc@0 {
|
||||
soc: soc {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
|
@ -56,7 +56,7 @@ additionalProperties: false
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/clock/jz4740-cgu.h>
|
||||
usb_phy: usb-phy@0 {
|
||||
usb_phy: usb-phy {
|
||||
compatible = "usb-nop-xceiv";
|
||||
#phy-cells = <0>;
|
||||
};
|
||||
|
@ -52,8 +52,8 @@ A child node must exist to represent the core DWC3 IP block. The name of
|
||||
the node is not important. The content of the node is defined in dwc3.txt.
|
||||
|
||||
Phy documentation is provided in the following places:
|
||||
Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt - USB3 QMP PHY
|
||||
Documentation/devicetree/bindings/phy/qcom-qusb2-phy.txt - USB2 QUSB2 PHY
|
||||
Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt - USB3 QMP PHY
|
||||
Documentation/devicetree/bindings/phy/qcom,qusb2-phy.yaml - USB2 QUSB2 PHY
|
||||
|
||||
Example device nodes:
|
||||
|
||||
|
@ -16,7 +16,7 @@ A child node must exist to represent the core DWC3 IP block. The name of
|
||||
the node is not important. The content of the node is defined in dwc3.txt.
|
||||
|
||||
Phy documentation is provided in the following places:
|
||||
Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.txt - USB2.0 PHY
|
||||
Documentation/devicetree/bindings/phy/phy-rockchip-inno-usb2.yaml - USB2.0 PHY
|
||||
Documentation/devicetree/bindings/phy/phy-rockchip-typec.txt - Type-C PHY
|
||||
|
||||
Example device nodes:
|
||||
|
@ -1323,7 +1323,10 @@ ARM INTEGRATOR, VERSATILE AND REALVIEW SUPPORT
|
||||
M: Linus Walleij <linus.walleij@linaro.org>
|
||||
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/arm/arm-boards
|
||||
F: Documentation/devicetree/bindings/arm/arm,integrator.yaml
|
||||
F: Documentation/devicetree/bindings/arm/arm,realview.yaml
|
||||
F: Documentation/devicetree/bindings/arm/arm,versatile.yaml
|
||||
F: Documentation/devicetree/bindings/arm/arm,vexpress-juno.yaml
|
||||
F: Documentation/devicetree/bindings/auxdisplay/arm-charlcd.txt
|
||||
F: Documentation/devicetree/bindings/clock/arm,syscon-icst.yaml
|
||||
F: Documentation/devicetree/bindings/i2c/i2c-versatile.txt
|
||||
@ -5552,7 +5555,7 @@ M: Chen-Yu Tsai <wens@csie.org>
|
||||
L: dri-devel@lists.freedesktop.org
|
||||
S: Supported
|
||||
T: git git://anongit.freedesktop.org/drm/drm-misc
|
||||
F: Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt
|
||||
F: Documentation/devicetree/bindings/display/allwinner*
|
||||
F: drivers/gpu/drm/sun4i/
|
||||
|
||||
DRM DRIVERS FOR AMLOGIC SOCS
|
||||
|
@ -261,6 +261,8 @@ static struct property *dup_and_fixup_symbol_prop(
|
||||
|
||||
of_property_set_flag(new_prop, OF_DYNAMIC);
|
||||
|
||||
kfree(target_path);
|
||||
|
||||
return new_prop;
|
||||
|
||||
err_free_new_prop:
|
||||
|
@ -3,22 +3,37 @@
|
||||
/plugin/;
|
||||
|
||||
/*
|
||||
* &electric_1/motor-1 and &spin_ctrl_1 are the same node:
|
||||
* /testcase-data-2/substation@100/motor-1
|
||||
* &electric_1/motor-1/electric and &spin_ctrl_1/electric are the same node:
|
||||
* /testcase-data-2/substation@100/motor-1/electric
|
||||
*
|
||||
* Thus the property "rpm_avail" in each fragment will
|
||||
* result in an attempt to update the same property twice.
|
||||
* This will result in an error and the overlay apply
|
||||
* will fail.
|
||||
*
|
||||
* The previous version of this test did not include the extra
|
||||
* level of node 'electric'. That resulted in the 'rpm_avail'
|
||||
* property being located in the pre-existing node 'motor-1'.
|
||||
* Modifying a property results in a WARNING that a memory leak
|
||||
* will occur if the overlay is removed. Since the overlay apply
|
||||
* fails, the memory leak does actually occur, and kmemleak will
|
||||
* further report the memory leak if CONFIG_DEBUG_KMEMLEAK is
|
||||
* enabled. Adding the overlay node 'electric' avoids the
|
||||
* memory leak and thus people who use kmemleak will not
|
||||
* have to debug this non-problem again.
|
||||
*/
|
||||
|
||||
&electric_1 {
|
||||
|
||||
motor-1 {
|
||||
rpm_avail = < 100 >;
|
||||
electric {
|
||||
rpm_avail = < 100 >;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&spin_ctrl_1 {
|
||||
rpm_avail = < 100 200 >;
|
||||
electric {
|
||||
rpm_avail = < 100 200 >;
|
||||
};
|
||||
};
|
||||
|
@ -861,6 +861,10 @@ static void __init of_unittest_changeset(void)
|
||||
unittest(!of_changeset_revert(&chgset), "revert failed\n");
|
||||
|
||||
of_changeset_destroy(&chgset);
|
||||
|
||||
of_node_put(n1);
|
||||
of_node_put(n2);
|
||||
of_node_put(n21);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -1243,10 +1247,13 @@ static void __init of_unittest_platform_populate(void)
|
||||
|
||||
of_platform_populate(np, match, NULL, &test_bus->dev);
|
||||
for_each_child_of_node(np, child) {
|
||||
for_each_child_of_node(child, grandchild)
|
||||
unittest(of_find_device_by_node(grandchild),
|
||||
for_each_child_of_node(child, grandchild) {
|
||||
pdev = of_find_device_by_node(grandchild);
|
||||
unittest(pdev,
|
||||
"Could not create device for node '%pOFn'\n",
|
||||
grandchild);
|
||||
of_dev_put(pdev);
|
||||
}
|
||||
}
|
||||
|
||||
of_platform_depopulate(&test_bus->dev);
|
||||
@ -3087,8 +3094,11 @@ static __init void of_unittest_overlay_high_level(void)
|
||||
goto err_unlock;
|
||||
}
|
||||
if (__of_add_property(of_symbols, new_prop)) {
|
||||
kfree(new_prop->name);
|
||||
kfree(new_prop->value);
|
||||
kfree(new_prop);
|
||||
/* "name" auto-generated by unflatten */
|
||||
if (!strcmp(new_prop->name, "name"))
|
||||
if (!strcmp(prop->name, "name"))
|
||||
continue;
|
||||
unittest(0, "duplicate property '%s' in overlay_base node __symbols__",
|
||||
prop->name);
|
||||
@ -3171,21 +3181,21 @@ static __init void of_unittest_overlay_high_level(void)
|
||||
"OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/controller");
|
||||
|
||||
EXPECT_BEGIN(KERN_ERR,
|
||||
"OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/motor-1/rpm_avail");
|
||||
"OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/electric");
|
||||
EXPECT_BEGIN(KERN_ERR,
|
||||
"OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/motor-1/rpm_avail");
|
||||
"OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/rpm_avail");
|
||||
EXPECT_BEGIN(KERN_ERR,
|
||||
"OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/rpm_avail");
|
||||
"OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/name");
|
||||
|
||||
unittest(overlay_data_apply("overlay_bad_add_dup_prop", NULL),
|
||||
"Adding overlay 'overlay_bad_add_dup_prop' failed\n");
|
||||
|
||||
EXPECT_END(KERN_ERR,
|
||||
"OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/rpm_avail");
|
||||
"OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/name");
|
||||
EXPECT_END(KERN_ERR,
|
||||
"OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/motor-1/rpm_avail");
|
||||
"OF: overlay: ERROR: multiple fragments add, update, and/or delete property /testcase-data-2/substation@100/motor-1/electric/rpm_avail");
|
||||
EXPECT_END(KERN_ERR,
|
||||
"OF: overlay: WARNING: memory leak will occur if overlay removed, property: /testcase-data-2/substation@100/motor-1/rpm_avail");
|
||||
"OF: overlay: ERROR: multiple fragments add and/or delete node /testcase-data-2/substation@100/motor-1/electric");
|
||||
|
||||
unittest(overlay_data_apply("overlay_bad_phandle", NULL),
|
||||
"Adding overlay 'overlay_bad_phandle' failed\n");
|
||||
|
@ -13,7 +13,7 @@ dtc-objs += dtc-lexer.lex.o dtc-parser.tab.o
|
||||
HOST_EXTRACFLAGS := -I $(srctree)/$(src)/libfdt
|
||||
|
||||
ifeq ($(shell pkg-config --exists yaml-0.1 2>/dev/null && echo yes),)
|
||||
ifneq ($(CHECK_DTBS),)
|
||||
ifneq ($(CHECK_DT_BINDING)$(CHECK_DTBS),)
|
||||
$(error dtc needs libyaml for DT schema validation support. \
|
||||
Install the necessary libyaml development package.)
|
||||
endif
|
||||
|
Loading…
Reference in New Issue
Block a user