{"id":2175712,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2175712/?format=json","project":{"id":28,"url":"http://patchwork.ozlabs.org/api/1.0/projects/28/?format=json","name":"Linux PCI development","link_name":"linux-pci","list_id":"linux-pci.vger.kernel.org","list_email":"linux-pci@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<4b0aa7160877cf128b9bc713776bcac73c46eb24.1766077285.git.andrea.porta@suse.com>","date":"2025-12-18T19:09:07","name":"[2/4] misc: rp1: drop overlay support","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"33125907e629ec2d4eb4da4ac22a95f6acc194a2","submitter":{"id":88172,"url":"http://patchwork.ozlabs.org/api/1.0/people/88172/?format=json","name":"Andrea della Porta","email":"andrea.porta@suse.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-pci/patch/4b0aa7160877cf128b9bc713776bcac73c46eb24.1766077285.git.andrea.porta@suse.com/mbox/","series":[{"id":485901,"url":"http://patchwork.ozlabs.org/api/1.0/series/485901/?format=json","date":"2025-12-18T19:09:05","name":"Fix RP1 DeviceTree hierarchy and drop overlay support","version":1,"mbox":"http://patchwork.ozlabs.org/series/485901/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2175712/checks/","tags":{},"headers":{"Return-Path":"\n <linux-pci+bounces-43322-incoming=patchwork.ozlabs.org@vger.kernel.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-pci@vger.kernel.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256\n header.s=google header.b=KsxSAYAz;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c0a:e001:db::12fc:5321; helo=sea.lore.kernel.org;\n envelope-from=linux-pci+bounces-43322-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com\n header.b=\"KsxSAYAz\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=209.85.218.51","smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=suse.com","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=suse.com"],"Received":["from sea.lore.kernel.org (sea.lore.kernel.org\n [IPv6:2600:3c0a:e001:db::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4dXKvn5pcXz1xty\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 19 Dec 2025 06:08:53 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sea.lore.kernel.org (Postfix) with ESMTP id B9F023078A26\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 19:06:55 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 52A093358A0;\n\tThu, 18 Dec 2025 19:06:47 +0000 (UTC)","from mail-ej1-f51.google.com (mail-ej1-f51.google.com\n [209.85.218.51])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 94DFF32E6A4\n\tfor <linux-pci@vger.kernel.org>; Thu, 18 Dec 2025 19:06:43 +0000 (UTC)","by mail-ej1-f51.google.com with SMTP id\n a640c23a62f3a-b7a72874af1so172856566b.3\n        for <linux-pci@vger.kernel.org>; Thu, 18 Dec 2025 11:06:43 -0800 (PST)","from localhost (host-79-37-15-246.retail.telecomitalia.it.\n [79.37.15.246])\n        by smtp.gmail.com with ESMTPSA id\n 4fb4d7f45d1cf-64b91494b94sm155859a12.22.2025.12.18.11.06.41\n        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n        Thu, 18 Dec 2025 11:06:41 -0800 (PST)"],"ARC-Seal":"i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1766084807; cv=none;\n b=imOKWzbRtFayyVjh3Mr4IZ11ja1smjS/1IRFp9UfRmImJ4/AcieuCp1smKcJNhan50/sL2owsmSXv9GdL9MWs21qubEJyMjjYpmqkZRHBc/f/ip7i3EfjAk8m03OJUsrHr4SIbZXUuT99kN6lVnw8gPJLgQlCx91XOBtQxvIefA=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1766084807; c=relaxed/simple;\n\tbh=24g1S/E7aS1cZPLixaJfTsFjvJ6GZwwKiWh1De6O9eA=;\n\th=From:To:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=SEx/sKMr7VEFgtYNACd81r6jBuKB2TnZkIo5U3/MFDGjm2yfnIO3ywACyEfAL3amkLm6iQUxIaJE/te4Uy7akDGD8MNLn/JURcvgv3GMt2g26Sy5BORkUnngtlZv5n8fJYv9theE981dMSV1l/0gL/nFK+h4feXwl40JC3CTKJs=","ARC-Authentication-Results":"i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=quarantine dis=none) header.from=suse.com;\n spf=pass smtp.mailfrom=suse.com;\n dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com\n header.b=KsxSAYAz; arc=none smtp.client-ip=209.85.218.51","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=suse.com; s=google; t=1766084802; x=1766689602;\n darn=vger.kernel.org;\n        h=content-transfer-encoding:mime-version:references:in-reply-to\n         :message-id:date:subject:to:from:from:to:cc:subject:date:message-id\n         :reply-to;\n        bh=zx79JY8qDg1xmaSwg2kQCiQZA4ov318HoPLNBWo/G6k=;\n        b=KsxSAYAzsea3CFYI/n/h9mI7C2hBPtb2De7RpmUR3My0h87zCF9oqFHBRUKooCKQ7L\n         1fxUelciBK67eUGWGGej14HUWlpPFRRWEdY4Se8FN0o1Ihr22jPhCpGEWn7lADq+FeOY\n         ghAWGTGUdo5auFMkwONAlsYUbaXUrQcpVb9IgnytgPv47oFOk3YMzvR5o/4p23ITN9q+\n         jbi5tF4PBFpTLv3r7EJjLY0d2eX0JetCFRewePDVtfaeVeXhIX74s0fDQH1wCNMIBFTL\n         yHatMFTDGtT57ugfXNsQ+6UNa22UL2pwPdL61DwWIOhLiQN+xp5ECHMAX1gxX1S2kId3\n         lTBA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20230601; t=1766084802; x=1766689602;\n        h=content-transfer-encoding:mime-version:references:in-reply-to\n         :message-id:date:subject:to:from:x-gm-gg:x-gm-message-state:from:to\n         :cc:subject:date:message-id:reply-to;\n        bh=zx79JY8qDg1xmaSwg2kQCiQZA4ov318HoPLNBWo/G6k=;\n        b=S3gs8vW1+u7seWlmPKbAPMumzGxiX1SSCz1ei40IoeStNAt3VHxjSje3sXcCZ5zT1O\n         pwP7cPT17S/pztxm3M9YUQEcPmSX/eFk46g7e4zEXnQmK8QHGuhhDNC0P5wP1jQv9nBS\n         yvUyG+/5QKMcYrbVlViThOC1i5fLCGxsgDB8R73t2HNeSOa02jNn7MKxc4L/bnPJt2ye\n         UnlCmkyJX16BFV6nNllWGCApuOzharTF8K5+2BPF2DVbXxF4RyuFX6/Z6CzLA8dzS7b3\n         gBuxoSTrX7v6uGANmM+ZGjqlW/23yhkVyNMhsCOtSdkPZS8NmoFYaUp/2cyPcYg8WCkb\n         D/pQ==","X-Forwarded-Encrypted":"i=1;\n AJvYcCUuhjDI4NSbijrfxGjucWe4GNBxMNmDU2WJH0LInlIeSpiOm/fOOmGHE4llir6YXfu+zcIjdOSqh+s=@vger.kernel.org","X-Gm-Message-State":"AOJu0YxECwXCufW/bBxDyVuEpbxpvHa6IDoNcdhcM6DBGYnb215z5Y9k\n\tBE/nq6hI85P6eLOvpSvwv9BuCqiHYQ+01GGdhCUNR3c3F4J7CmnPoXaEsfzZj1oSSoQzzLQw3G2\n\totqlx","X-Gm-Gg":"AY/fxX7azK8/gkU/wxgW56nwrjIxucxzZfbImKZpD+lMGqWX0O6bLZxTFImZQYH7Tqa\n\t1BaLslx7ilKKtsD9fvLjtDs71cmwDIlGqzLUm6ysVMQJutjiYWeQ47byXpf+vibR+KS+T7XbI3j\n\tRWuN1EmSMLnmrzKrridi1IKXuzsH4krpZMpLTgvg9LVh7EgaIpMuId68MHB35jVkr8fKefGm/69\n\te7IW4FWU41sCcRnlQRuS3Z6E+g3cQYPu5SQCecNmq1qXk4xA22J6calb14Ie6OOpc1sr4J2Xuv2\n\tN8ClLfsYy74pDknGUzU4rkgxr2IToMn0HmFFWq0UZwnEjWiXYPI0Ky8RILYNY2/vsOOePgI4qW8\n\tiCnid/KcaG1DO8ZbakuyeZUcHoQQ8lT83ii6N9K+w5yuRYhX9WbqUKWjALDwtUqN5mudZwzVDXX\n\tfPkYVfUDxwUwjFzfLDk4WsnuNuUXDdbKPxJ7hGsFX7mOAXj3SJxLbbyg==","X-Google-Smtp-Source":"\n AGHT+IGz/hwriZCabz4pyg0PAJ/ezKOQ6S+SFGdp1KobFV5gJSyL5vIdIRhrdzKTifgKNcjBLVlatg==","X-Received":"by 2002:a17:907:72c1:b0:b80:1d4b:bddc with SMTP id\n a640c23a62f3a-b803694fe6cmr39099266b.0.1766084801609;\n        Thu, 18 Dec 2025 11:06:41 -0800 (PST)","From":"Andrea della Porta <andrea.porta@suse.com>","To":"Rob Herring <robh@kernel.org>,\n\tKrzysztof Kozlowski <krzk+dt@kernel.org>,\n\tConor Dooley <conor+dt@kernel.org>,\n\tFlorian Fainelli <florian.fainelli@broadcom.com>,\n\tBroadcom internal kernel review list <bcm-kernel-feedback-list@broadcom.com>,\n\tAndrea della Porta <andrea.porta@suse.com>,\n\tBjorn Helgaas <bhelgaas@google.com>,\n\tdevicetree@vger.kernel.org,\n\tlinux-kernel@vger.kernel.org,\n\tlinux-rpi-kernel@lists.infradead.org,\n\tlinux-arm-kernel@lists.infradead.org,\n\tlinux-pci@vger.kernel.org,\n\tiivanov@suse.de,\n\tsvarbanov@suse.de,\n\tmbrugger@suse.com,\n\tPhil Elwell <phil@raspberrypi.com>","Subject":"[PATCH 2/4] misc: rp1: drop overlay support","Date":"Thu, 18 Dec 2025 20:09:07 +0100","Message-ID":"\n <4b0aa7160877cf128b9bc713776bcac73c46eb24.1766077285.git.andrea.porta@suse.com>","X-Mailer":"git-send-email 2.51.0","In-Reply-To":"<cover.1766077285.git.andrea.porta@suse.com>","References":"<cover.1766077285.git.andrea.porta@suse.com>","Precedence":"bulk","X-Mailing-List":"linux-pci@vger.kernel.org","List-Id":"<linux-pci.vger.kernel.org>","List-Subscribe":"<mailto:linux-pci+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-pci+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit"},"content":"The RP1 driver can load an overlay at runtime to describe the inner\nperipherals. This has led to a lot of confusion regarding the naming\nof nodes, their topology and the reclaiming of related node resources.\n\nSince the overlay is currently not fully functional, drop its support\nin the driver in favor of the fully described static DT.\n\nThis also means that this driver does not depend on CONFIG_PCI_DYNAMIC_OF_NODES\nand no longer requires PCI quirks to dynamically create the intermediate\nPCI nodes.\n\nSigned-off-by: Andrea della Porta <andrea.porta@suse.com>\n---\n drivers/misc/rp1/Kconfig      |  6 +-----\n drivers/misc/rp1/Makefile     |  3 +--\n drivers/misc/rp1/rp1-pci.dtso | 25 -----------------------\n drivers/misc/rp1/rp1_pci.c    | 37 ++++-------------------------------\n drivers/pci/quirks.c          |  1 -\n 5 files changed, 6 insertions(+), 66 deletions(-)\n delete mode 100644 drivers/misc/rp1/rp1-pci.dtso","diff":"diff --git a/drivers/misc/rp1/Kconfig b/drivers/misc/rp1/Kconfig\nindex 5232e70d3079b..2c13b3968b011 100644\n--- a/drivers/misc/rp1/Kconfig\n+++ b/drivers/misc/rp1/Kconfig\n@@ -5,8 +5,7 @@\n \n config MISC_RP1\n \ttristate \"RaspberryPi RP1 misc device\"\n-\tdepends on OF_IRQ && OF_OVERLAY && PCI_MSI && PCI_QUIRKS\n-\tselect PCI_DYNAMIC_OF_NODES\n+\tdepends on OF_IRQ && PCI_MSI\n \thelp\n \t  Support the RP1 peripheral chip found on Raspberry Pi 5 board.\n \n@@ -15,6 +14,3 @@ config MISC_RP1\n \n \t  The driver is responsible for enabling the DT node once the PCIe\n \t  endpoint has been configured, and handling interrupts.\n-\n-\t  This driver uses an overlay to load other drivers to support for\n-\t  RP1 internal sub-devices.\ndiff --git a/drivers/misc/rp1/Makefile b/drivers/misc/rp1/Makefile\nindex 508b4cb056277..ab32b433d7ede 100644\n--- a/drivers/misc/rp1/Makefile\n+++ b/drivers/misc/rp1/Makefile\n@@ -1,3 +1,2 @@\n # SPDX-License-Identifier: GPL-2.0-only\n-obj-$(CONFIG_MISC_RP1)\t\t+= rp1-pci.o\n-rp1-pci-objs\t\t\t:= rp1_pci.o rp1-pci.dtbo.o\n+obj-$(CONFIG_MISC_RP1)\t\t+= rp1_pci.o\ndiff --git a/drivers/misc/rp1/rp1-pci.dtso b/drivers/misc/rp1/rp1-pci.dtso\ndeleted file mode 100644\nindex eea826b36e029..0000000000000\n--- a/drivers/misc/rp1/rp1-pci.dtso\n+++ /dev/null\n@@ -1,25 +0,0 @@\n-// SPDX-License-Identifier: (GPL-2.0 OR MIT)\n-\n-/*\n- * The dts overlay is included from the dts directory so\n- * it can be possible to check it with CHECK_DTBS while\n- * also compile it from the driver source directory.\n- */\n-\n-/dts-v1/;\n-/plugin/;\n-\n-/ {\n-\tfragment@0 {\n-\t\ttarget-path=\"\";\n-\t\t__overlay__ {\n-\t\t\tcompatible = \"pci1de4,1\";\n-\t\t\t#address-cells = <3>;\n-\t\t\t#size-cells = <2>;\n-\t\t\tinterrupt-controller;\n-\t\t\t#interrupt-cells = <2>;\n-\n-\t\t\t#include \"arm64/broadcom/rp1-common.dtsi\"\n-\t\t};\n-\t};\n-};\ndiff --git a/drivers/misc/rp1/rp1_pci.c b/drivers/misc/rp1/rp1_pci.c\nindex a342bcc6164bb..d210da84c30a2 100644\n--- a/drivers/misc/rp1/rp1_pci.c\n+++ b/drivers/misc/rp1/rp1_pci.c\n@@ -34,16 +34,11 @@\n /* Interrupts */\n #define RP1_INT_END\t\t61\n \n-/* Embedded dtbo symbols created by cmd_wrap_S_dtb in scripts/Makefile.lib */\n-extern char __dtbo_rp1_pci_begin[];\n-extern char __dtbo_rp1_pci_end[];\n-\n struct rp1_dev {\n \tstruct pci_dev *pdev;\n \tstruct irq_domain *domain;\n \tstruct irq_data *pcie_irqds[64];\n \tvoid __iomem *bar1;\n-\tint ovcs_id;\t/* overlay changeset id */\n \tbool level_triggered_irq[RP1_INT_END];\n };\n \n@@ -184,24 +179,13 @@ static void rp1_unregister_interrupts(struct pci_dev *pdev)\n \n static int rp1_probe(struct pci_dev *pdev, const struct pci_device_id *id)\n {\n-\tu32 dtbo_size = __dtbo_rp1_pci_end - __dtbo_rp1_pci_begin;\n-\tvoid *dtbo_start = __dtbo_rp1_pci_begin;\n \tstruct device *dev = &pdev->dev;\n \tstruct device_node *rp1_node;\n-\tbool skip_ovl = true;\n \tstruct rp1_dev *rp1;\n \tint err = 0;\n \tint i;\n \n-\t/*\n-\t * Either use rp1_nexus node if already present in DT, or\n-\t * set a flag to load it from overlay at runtime\n-\t */\n-\trp1_node = of_find_node_by_name(NULL, \"rp1_nexus\");\n-\tif (!rp1_node) {\n-\t\trp1_node = dev_of_node(dev);\n-\t\tskip_ovl = false;\n-\t}\n+\trp1_node = dev_of_node(dev);\n \n \tif (!rp1_node) {\n \t\tdev_err(dev, \"Missing of_node for device\\n\");\n@@ -276,42 +260,29 @@ static int rp1_probe(struct pci_dev *pdev, const struct pci_device_id *id)\n \t\t\t\t\t\t rp1_chained_handle_irq, rp1);\n \t}\n \n-\tif (!skip_ovl) {\n-\t\terr = of_overlay_fdt_apply(dtbo_start, dtbo_size, &rp1->ovcs_id,\n-\t\t\t\t\t   rp1_node);\n-\t\tif (err)\n-\t\t\tgoto err_unregister_interrupts;\n-\t}\n-\n \terr = of_platform_default_populate(rp1_node, NULL, dev);\n \tif (err) {\n \t\tdev_err_probe(&pdev->dev, err, \"Error populating devicetree\\n\");\n-\t\tgoto err_unload_overlay;\n+\t\tgoto err_unregister_interrupts;\n \t}\n \n-\tif (skip_ovl)\n-\t\tof_node_put(rp1_node);\n+\tof_node_put(rp1_node);\n \n \treturn 0;\n \n-err_unload_overlay:\n-\tof_overlay_remove(&rp1->ovcs_id);\n err_unregister_interrupts:\n \trp1_unregister_interrupts(pdev);\n err_put_node:\n-\tif (skip_ovl)\n-\t\tof_node_put(rp1_node);\n+\tof_node_put(rp1_node);\n \n \treturn err;\n }\n \n static void rp1_remove(struct pci_dev *pdev)\n {\n-\tstruct rp1_dev *rp1 = pci_get_drvdata(pdev);\n \tstruct device *dev = &pdev->dev;\n \n \tof_platform_depopulate(dev);\n-\tof_overlay_remove(&rp1->ovcs_id);\n \trp1_unregister_interrupts(pdev);\n }\n \ndiff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c\nindex b9c252aa6fe08..280cd50d693bd 100644\n--- a/drivers/pci/quirks.c\n+++ b/drivers/pci/quirks.c\n@@ -6308,7 +6308,6 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_XILINX, 0x5020, of_pci_make_dev_node);\n DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_XILINX, 0x5021, of_pci_make_dev_node);\n DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_REDHAT, 0x0005, of_pci_make_dev_node);\n DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_EFAR, 0x9660, of_pci_make_dev_node);\n-DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_RPI, PCI_DEVICE_ID_RPI_RP1_C0, of_pci_make_dev_node);\n \n /*\n  * Devices known to require a longer delay before first config space access\n","prefixes":["2/4"]}