- 22 Aug, 2023 3 commits
-
-
Lizhi Hou authored
The PCI endpoint device such as Xilinx Alveo PCI card maps the register spaces from multiple hardware peripherals to its PCI BAR. Normally, the PCI core discovers devices and BARs using the PCI enumeration process. There is no infrastructure to discover the hardware peripherals that are present in a PCI device, and which can be accessed through the PCI BARs. Apparently, the device tree framework requires a device tree node for the PCI device. Thus, it can generate the device tree nodes for hardware peripherals underneath. Because PCI is self discoverable bus, there might not be a device tree node created for PCI devices. Furthermore, if the PCI device is hot pluggable, when it is plugged in, the device tree nodes for its parent bridges are required. Add support to generate device tree node for PCI bridges. Add an of_pci_make_dev_node() interface that can be used to create device tree node for PCI devices. Add a PCI_DYNAMIC_OF_NODES config option. When the option is turned on, the kernel will generate device tree nodes for PCI bridges unconditionally. Initially, add the basic properties for the dynamically generated device tree nodes which include #address-cells, #size-cells, device_type, compatible, ranges, reg. Acked-by: Bjorn Helgaas <bhelgaas@google.com> Signed-off-by: Lizhi Hou <lizhi.hou@amd.com> Link: https://lore.kernel.org/r/1692120000-46900-3-git-send-email-lizhi.hou@amd.comSigned-off-by: Rob Herring <robh@kernel.org>
-
Lizhi Hou authored
of_changeset_create_node() creates device node dynamically and attaches the newly created node to a changeset. Expand of_changeset APIs to handle specific types of properties. of_changeset_add_prop_string() of_changeset_add_prop_string_array() of_changeset_add_prop_u32_array() Signed-off-by: Clément Léger <clement.leger@bootlin.com> Signed-off-by: Lizhi Hou <lizhi.hou@amd.com> Link: https://lore.kernel.org/r/1692120000-46900-2-git-send-email-lizhi.hou@amd.comSigned-off-by: Rob Herring <robh@kernel.org>
-
Viresh Kumar authored
The `struct of_skipped_node_table` is used only when CONFIG_OF_ADDRESS is defined, move it within the #ifdef/#endif to avoid warnings on configurations where CONFIG_OF_ADDRESS isn't defined. Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202308212037.YopffWSU-lkp@intel.com/Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Link: https://lore.kernel.org/r/73dea4f4b389359a8beadbc77b00eb26853f9ab5.1692691032.git.viresh.kumar@linaro.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
- 21 Aug, 2023 9 commits
-
-
Krzysztof Kozlowski authored
Simple 'opp-table:true' accepts a boolean property as opp-table, so restrict it to object to properly enforce real OPP table nodes. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20230820080543.25204-1-krzysztof.kozlowski@linaro.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Rob Herring authored
All callers of __of_{add,remove,update}_property() and __of_{attach,detach}_node() wrap the call with the devtree_lock spinlock. Let's move the spinlock into the functions. This allows moving the sysfs update functions into those functions as well. Link: https://lore.kernel.org/r/20230801-dt-changeset-fixes-v3-6-5f0410e007dd@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Rob Herring authored
The changeset code checks for a property in the deadprops list when adding/updating a property, but of_add_property() and of_update_property() do not. As the users of these functions are pretty simple, they have not hit this scenario or else the property lists would get corrupted. With this there are 3 cases of removing a property from either deadprops or properties lists, so add a helper to find and remove a matching property. Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/20230801-dt-changeset-fixes-v3-5-5f0410e007dd@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Rob Herring authored
__of_update_property() returns the existing property if there is one, but that value is never added to the changeset. Updates work because the existing property was also retrieved before in of_changeset_action(), but that is racy as of_changeset_action() doesn't hold any locks. The property could be changed before the changeset is applied. Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/20230801-dt-changeset-fixes-v3-4-5f0410e007dd@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Rob Herring authored
Several places print the changeset action with node and property details. Refactor these into a common printing helper. The complicating factor is some prints are debug and some are errors. Solve this with a bit of preprocessor magic. Some cases printed the 'cset' which was the changeset entry pointer rather than the whole changeset itself. The changeset entry is not all that interesting and gets obfuscated by default anyways. So just drop it. Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/20230801-dt-changeset-fixes-v3-3-5f0410e007dd@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Rob Herring authored
Pick up changeset fixes for further rework.
-
Peng Fan authored
commit 0f8e5651 ("of/platform: Propagate firmware node by calling device_set_node()") use of_fwnode_handle to replace of_node_get, which introduces a side effect that the refcount is not increased. Then the out of tree jailhouse hypervisor enable/disable test will trigger kernel dump in of_overlay_remove, with the following sequence " of_changeset_revert(&overlay_changeset); of_changeset_destroy(&overlay_changeset); of_overlay_remove(&overlay_id); " So increase the refcount to avoid issues. This patch also release the refcount when releasing amba device to avoid refcount leakage. Fixes: 0f8e5651 ("of/platform: Propagate firmware node by calling device_set_node()") Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Peng Fan <peng.fan@nxp.com> Link: https://lore.kernel.org/r/20230821023928.3324283-2-peng.fan@oss.nxp.comSigned-off-by: Rob Herring <robh@kernel.org>
-
Rob Herring authored
While originally it was fine to format strings using "%pOF" while holding devtree_lock, this now causes a deadlock. Lockdep reports: of_get_parent from of_fwnode_get_parent+0x18/0x24 ^^^^^^^^^^^^^ of_fwnode_get_parent from fwnode_count_parents+0xc/0x28 fwnode_count_parents from fwnode_full_name_string+0x18/0xac fwnode_full_name_string from device_node_string+0x1a0/0x404 device_node_string from pointer+0x3c0/0x534 pointer from vsnprintf+0x248/0x36c vsnprintf from vprintk_store+0x130/0x3b4 Fix this by moving the printing in __of_changeset_entry_apply() outside the lock. As the only difference in the multiple prints is the action name, use the existing "action_names" to refactor the prints into a single print. Fixes: a92eb762 ("lib/vsprintf: Make use of fwnode API to obtain node names and separators") Cc: stable@vger.kernel.org Reported-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/20230801-dt-changeset-fixes-v3-2-5f0410e007dd@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Rob Herring authored
Commit 12e17243 ("of: base: improve error msg in of_phandle_iterator_next()") added printing of the phandle value on error, but failed to update the unittest. Fixes: 12e17243 ("of: base: improve error msg in of_phandle_iterator_next()") Cc: stable@vger.kernel.org Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Link: https://lore.kernel.org/r/20230801-dt-changeset-fixes-v3-1-5f0410e007dd@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
- 18 Aug, 2023 4 commits
-
-
Fabio Estevam authored
Convert from pps-gpio.txt to pps-gpio.yaml to allow schema validation. Signed-off-by: Fabio Estevam <festevam@denx.de> Acked-by: Rodolfo Giometti <giometti@enneenne.com> Link: https://lore.kernel.org/r/20230818174159.1680572-1-festevam@gmail.comSigned-off-by: Rob Herring <robh@kernel.org>
-
Rik van Riel authored
The code calling ima_free_kexec_buffer runs long after the memblock allocator has already been torn down, potentially resulting in a use after free in memblock_isolate_range. With KASAN or KFENCE, this use after free will result in a BUG from the idle task, and a subsequent kernel panic. Switch ima_free_kexec_buffer over to memblock_free_late to avoid that issue. Fixes: fee3ff99 ("powerpc: Move arch independent ima kexec functions to drivers/of/kexec.c") Cc: stable@kernel.org Signed-off-by: Rik van Riel <riel@surriel.com> Suggested-by: Mike Rappoport <rppt@kernel.org> Link: https://lore.kernel.org/r/20230817135759.0888e5ef@imladris.surriel.comSigned-off-by: Rob Herring <robh@kernel.org>
-
Bjorn Helgaas authored
Fix typos in Documentation/devicetree/bindings. The changes are in descriptions or comments where they shouldn't affect functionality. Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Link: https://lore.kernel.org/r/20230814212822.193684-3-helgaas@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Naman Trivedi Manojbhai authored
Remove the zynqmp-genpd.txt binding. Add the power-domain-cells property from the zynqmp-genpd.txt binding to firmware binding. Signed-off-by: Naman Trivedi Manojbhai <naman.trivedimanojbhai@amd.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20230816130309.1338446-1-naman.trivedimanojbhai@amd.comSigned-off-by: Rob Herring <robh@kernel.org>
-
- 17 Aug, 2023 3 commits
-
-
Rob Herring authored
The regex search for declarations of struct of_device_id was missing cases that had a compiler annotation such as "__maybe_unused". Improve the regex to allow for these. Use '\S' instead of specific characters to shorten the regex. That also finds some more compatibles using '.' characters. Unfortunately, these changes add ~400 more compatibles without a schema. Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20230804190130.1936566-1-robh@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Konrad Dybcio authored
Like all other RPMh-enabled SoCs, SDM670 includes a PDC. Document it. Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20230811-topic-tlmm_wakeup-v1-1-5616a7da1fff@linaro.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Ivan Mikhaylov authored
Conversion from ftgmac100.txt to yaml format version. Signed-off-by: Ivan Mikhaylov <fr0st61te@gmail.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20230805135318.6102-1-fr0st61te@gmail.comSigned-off-by: Rob Herring <robh@kernel.org>
-
- 16 Aug, 2023 5 commits
-
-
Sebastian Reichel authored
Rockchip RK356x and RK3588 handle legacy interrupts via a ganged interrupts. The RK356x DT implements this via a sub-node named "legacy-interrupt-controller", just like a couple of other PCIe implementations. This adds proper documentation for this and updates the example to avoid regressions. Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Link: https://lore.kernel.org/r/20230731165723.53069-5-sebastian.reichel@collabora.comSigned-off-by: Rob Herring <robh@kernel.org>
-
Sebastian Reichel authored
Use the generic binding for Rockchip. This should either be ignored/dropped or squashed into the previous commit. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Link: https://lore.kernel.org/r/20230731165723.53069-4-sebastian.reichel@collabora.comSigned-off-by: Rob Herring <robh@kernel.org>
-
Sebastian Reichel authored
The RK356x (and RK3588) have 5 ganged interrupts. For example the "legacy" interrupt combines "inta/intb/intc/intd" with a register providing the details, which specific interrupt triggered. The interrupts from the second level are part of the Synopsys DW PCIe System Information Interface (SII). Some of them are listed in the Interrupt Signals section, the others are mostly common SII output signals. The grouping and the ganged interrupt controllers are specific to the Rockchip implementation. Currently the binding is not specifying these interrupts resulting in a bunch of errors for all rk356x/rk3588 boards using PCIe. Fix this by specifying the interrupts and add them to the example to prevent regressions. This changes the reference from snps,dw-pcie.yaml to snps,dw-pcie-common.yaml, since the interrupts are vendor specific and should not be listed in the generic file. The only other bit from the generic binding are the reg-names, which are overwritten by this binding. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Link: https://lore.kernel.org/r/20230731165723.53069-3-sebastian.reichel@collabora.comSigned-off-by: Rob Herring <robh@kernel.org>
-
Sebastian Reichel authored
Allow missing "msi" interrupt, iff the node has a "msi-map" property. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com> Link: https://lore.kernel.org/r/20230731165723.53069-2-sebastian.reichel@collabora.comSigned-off-by: Rob Herring <robh@kernel.org>
-
Alexander Stein authored
Starting with commit 3e37c9d4 ("dt-bindings: hwmon: Convert lm75 bindings to yaml") 'national,lm75' has it's own dedicated (YAML) binding. If kept in this file device specific properties as 'vs-supply' are considered excessive. Remove compatible here so it can be checked with more specific binding. arch/arm/boot/dts/nxp/imx/imx6q-mba6a.dtb: sensor@48: 'vs-supply' does not match any of the regexes: 'pinctrl-[0-9]+' From schema: Documentation/devicetree/bindings/trivial-devices.yaml Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20230810144451.1459985-2-alexander.stein@ew.tq-group.comSigned-off-by: Rob Herring <robh@kernel.org>
-
- 10 Aug, 2023 1 commit
-
-
Ruan Jinjie authored
The driver depends on CONFIG_OF, it is not necessary to use of_match_ptr() here. Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com> Link: https://lore.kernel.org/r/20230808094043.2732158-1-ruanjinjie@huawei.comSigned-off-by: Rob Herring <robh@kernel.org>
-
- 04 Aug, 2023 2 commits
-
-
Rob Herring authored
The declarations for of_device_{add,register,unregister} were moved into of_platform.h, so the implementations should be moved to platform.c as well. Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Link: https://lore.kernel.org/r/20230717143718.1715773-2-robh@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Rob Herring authored
There's no reason the generic platform bus code needs to call of_platform_register_reconfig_notifier(). The notifier can be setup before the platform bus is. Let's move it into of_core_init() which is called just before platform_bus_init() instead to keep more of the DT bits in the DT code. Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Link: https://lore.kernel.org/r/20230717143718.1715773-1-robh@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
- 03 Aug, 2023 1 commit
-
-
Guru Das Srinagesh authored
Clean up my email address as the codeaurora.org address is not used anymore. Signed-off-by: Guru Das Srinagesh <quic_gurus@quicinc.com> Link: https://lore.kernel.org/r/20230728001622.4938-1-quic_gurus@quicinc.comSigned-off-by: Rob Herring <robh@kernel.org>
-
- 27 Jul, 2023 5 commits
-
-
Krzysztof Kozlowski authored
USB connector bindings is complete, thus no additional properties should be allowed. Add missing 'reg' property and change additionalProperties to false, so the schema will check for anything unexpected. This also allows to drop the 'reg' from other bindings referencing the usb-connector.yaml and make it required. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20230725102325.76336-1-krzysztof.kozlowski@linaro.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Rob Herring authored
Add compatible strings for the Arm Cortex-A520, Cortex-A720, and Cortex-X4 2023 CPUs. Acked-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20230706205334.306483-1-robh@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Ruan Jinjie authored
when kmalloc() fail to allocate memory in kasprintf(), name or full_name will be NULL, strcmp() will cause null pointer dereference. Fixes: 0d638a07 ("of: Convert to using %pOF instead of full_name") Signed-off-by: Ruan Jinjie <ruanjinjie@huawei.com> Link: https://lore.kernel.org/r/20230727080246.519539-1-ruanjinjie@huawei.comSigned-off-by: Rob Herring <robh@kernel.org>
-
Krzysztof Kozlowski authored
samsung,s3c6400-hsotg compatible is already fully covered in dwc2.yaml bindings. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20230722201620.35489-1-krzysztof.kozlowski@linaro.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Stephen Rothwell authored
Fix these htmldoc build warnings: include/linux/of.h:115: warning: cannot understand function prototype: 'const struct kobj_type of_node_ktype; ' include/linux/of.h:118: warning: Excess function parameter 'phandle_name' description in 'of_node_init' Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Reported-by: Randy Dunlap <rdunlap@infradead.org> Fixes: d9194e00 ("of: dynamic: add lifecycle docbook info to node creation functions") Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Reviewed-by: Randy Dunlap <rdunlap@infradead.org> Link: https://lore.kernel.org/r/20230322180032.1badd132@canb.auug.org.auSigned-off-by: Rob Herring <robh@kernel.org>
-
- 21 Jul, 2023 2 commits
-
-
Rob Herring authored
nxp,lpc1850-uart.txt binding is already covered by 8250.yaml, so remove it. Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20230707221607.1064888-1-robh@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Rob Herring authored
cavium-uart.txt binding is already covered by 8250.yaml, so remove it. Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20230707221602.1063972-1-robh@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
- 19 Jul, 2023 1 commit
-
-
Dinh Nguyen authored
The property "altr,modrst-offset" is only applicable to arm32 SoCFPGA platforms, thus it not required for all platforms. While at it, update my email address. Signed-off-by: Dinh Nguyen <dinguyen@kernel.org> Acked-by: Conor Dooley <conor.dooley@microchip.com> Link: https://lore.kernel.org/r/20230719132749.661914-1-dinguyen@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
- 14 Jul, 2023 2 commits
-
-
Krzysztof Kozlowski authored
Few coefficients use default values multiple of 100, not 1000 (in the example DTS and in the Linux driver): moortec,mr75203.example.dtb: pvt@e0680000: moortec,ts-coeff-g:0:0: 61400 is not a multiple of 1000 Fixes: bf1fdafd ("dt-bindings: hwmon: (mr75203) add coefficient properties for the thermal equation") Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20230712081124.110345-1-krzysztof.kozlowski@linaro.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
Anusha Rao authored
Document the compatible string for ipq9574. Acked-by: Conor Dooley <conor.dooley@microchip.com> Reviewed-by: Bhupesh Sharma <bhupesh.sharma@linaro.org> Signed-off-by: Anusha Rao <quic_anusha@quicinc.com> Link: https://lore.kernel.org/r/20230714093032.22400-1-quic_anusha@quicinc.comSigned-off-by: Rob Herring <robh@kernel.org>
-
- 11 Jul, 2023 1 commit
-
-
Rob Herring authored
Since commit 241d2fb5 ("of: Make OF framebuffer device names unique"), as spotted by Frédéric Bonnard, the historical "of-display" device is gone: the updated logic creates "of-display.0" instead, then as many "of-display.N" as required. This means that offb no longer finds the expected device, which prevents the Debian Installer from setting up its interface, at least on ppc64el. Fix this by keeping "of-display" for the first device and "of-display.N" for subsequent devices. Link: https://bugzilla.kernel.org/show_bug.cgi?id=217328 Link: https://bugs.debian.org/1033058 Fixes: 241d2fb5 ("of: Make OF framebuffer device names unique") Cc: stable@vger.kernel.org Cc: Cyril Brulebois <cyril@debamax.com> Cc: Thomas Zimmermann <tzimmermann@suse.de> Cc: Helge Deller <deller@gmx.de> Acked-by: Helge Deller <deller@gmx.de> Acked-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Michal Suchánek <msuchanek@suse.de> Link: https://lore.kernel.org/r/20230710174007.2291013-1-robh@kernel.orgSigned-off-by: Rob Herring <robh@kernel.org>
-
- 10 Jul, 2023 1 commit
-
-
Baoquan He authored
On s390 systems (aka mainframes), it has classic channel devices for networking and permanent storage that are currently even more common than PCI devices. Hence it could have a fully functional s390 kernel with CONFIG_PCI=n, then the relevant iomem mapping functions [including ioremap(), devm_ioremap(), etc.] are not available. In LKP error report at below on s390: ------ ld: kernel/dma/coherent.o: in function `dma_init_coherent_memory': coherent.c:(.text+0x102): undefined reference to `memremap' ld: coherent.c:(.text+0x226): undefined reference to `memunmap' ld: kernel/dma/coherent.o: in function `dma_declare_coherent_memory': coherent.c:(.text+0x8b8): undefined reference to `memunmap' ld: kernel/dma/coherent.o: in function `dma_release_coherent_memory': coherent.c:(.text+0x9aa): undefined reference to `memunmap' ------ In the config file, several Kconfig options are: ------ '# CONFIG_PCI is not set' CONFIG_OF_EARLY_FLATTREE=y CONFIG_DMA_DECLARE_COHERENT=y ------ So, enabling OF_EARLY_FLATTREE will select DMA_DECLARE_COHERENT and cause above building errors even though they are not needed because CONFIG_PCI is disabled. Here let OF_EARLY_FLATTREE depend on HAS_IOMEM so that it won't be built to cause compiling error if PCI is unset. Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202306211329.ticOJCSv-lkp@intel.com/Signed-off-by: Baoquan He <bhe@redhat.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Frank Rowand <frowand.list@gmail.com> Cc: devicetree@vger.kernel.org Link: https://lore.kernel.org/r/20230707135852.24292-9-bhe@redhat.comSigned-off-by: Rob Herring <robh@kernel.org>
-