Received: by 2002:ab2:6857:0:b0:1ef:ffd0:ce49 with SMTP id l23csp2817414lqp; Mon, 25 Mar 2024 10:01:39 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWm/6QQBgQyF0SPVqYxDDCRgr9DhQ5QGvqGhUQaqnR3KMKXI3XZWOEi7aKTrpFoo93YPrKTImJmgjGzcvem5Yq9cRaMVwqsKsziKFwarw== X-Google-Smtp-Source: AGHT+IHzeIilSQEZnAhHxEOz8k/IxbjCZJGnrOQer3JLJfASFYE/SA143rHhKPuCXxbEs0dDjyBf X-Received: by 2002:a25:35c6:0:b0:dca:e4fd:b6d6 with SMTP id c189-20020a2535c6000000b00dcae4fdb6d6mr4865433yba.61.1711386099482; Mon, 25 Mar 2024 10:01:39 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711386099; cv=pass; d=google.com; s=arc-20160816; b=Jv/VIkk80PZ2Jny+JkX5ljL+g+zFGVBC0LFZOE/4WQ83kabSrQPXN7ngDfFSuN4Npj jlP0bCQ+/JOP+IKBTcN9GeHqoKSBdl9qRFUgj72xz3z6P+iG9VK7UK4G1WPH2iQOKFO/ CQynLgIN5L3iUY1LaMsV+vmocow6e9BuOQ0og1N0LX6Et2i8V1okpJJUoJ9slGeQgLmI x1irNNxDMrKwT0IFpkwhDuIRIqdZ62vfcqi3uLDjsqVwDymAoOeWWvqtM9dhOPappiiL GOIFU7zb02wbk4b7X7ICQ0I0Ovs9nXPwcWf7b0HJCQ/iYKwsr81k/gr4KqidRs/dyXRN vgLg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=cLRQo0XRS8LZDKEz8aQDPJI24t7vYnPhkxLETHKtHpE=; fh=4g2S1ZA5daN//xWlyc6Wr1CtUi+Ir8ojLyWGWlZlpGg=; b=XNGqLhd199+K4q0nPWr+p+UYyGxMZl1g60u2BCWowcyHAYkFvWiTk1Lf9DyBPvzAFV O6sLXpVm43ntLRUoZmPW0itigKfBxumfpKF4hJH7yfF9fIS3LEsb8gCASVcBmCB1vEAT UDQZv5Wn3zfvQyZ0mw9FCAGcDHnF8NTeJotfK/gLg+YkaUSZ10DYXXXTpvAweWx6/P4r spOQiBrE9yWO81bf3jmIJsto94dCiqtWI4IAf7We1C/H2lGkXVozHmo6lyISAXmlZrQ1 Q5nDR2QYJEwSSQPQzb2ql+vDhuA7YsQLG2N7bj41vTNAzOS/CCyDo29iaRcwzgJkyEKb CcNA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@bgdev-pl.20230601.gappssmtp.com header.s=20230601 header.b=bWcR5fp0; arc=pass (i=1 dkim=pass dkdomain=bgdev-pl.20230601.gappssmtp.com); spf=pass (google.com: domain of linux-kernel+bounces-117112-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-117112-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id j186-20020a253cc3000000b00dce19962b62si1391786yba.403.2024.03.25.10.01.39 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Mar 2024 10:01:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-117112-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@bgdev-pl.20230601.gappssmtp.com header.s=20230601 header.b=bWcR5fp0; arc=pass (i=1 dkim=pass dkdomain=bgdev-pl.20230601.gappssmtp.com); spf=pass (google.com: domain of linux-kernel+bounces-117112-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-117112-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 933471C3ED60 for ; Mon, 25 Mar 2024 15:46:24 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 2563815E1EA; Mon, 25 Mar 2024 13:17:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="bWcR5fp0" Received: from mail-wr1-f41.google.com (mail-wr1-f41.google.com [209.85.221.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 84CC014EC44 for ; Mon, 25 Mar 2024 13:17:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711372639; cv=none; b=PPZwErpVShxAAHFwskA66oNDekXzqD0IZHS9/jigNCGlWrkH24P7k7fWIP4+yDBSy1G66mtZ+kVaca1zNw6ApxwGXnf5bfgiDyxaL7w3TWjB+CcKuqSZKtntwitRv6S4FvRle5NeU3UJkMjq2pxhRxYl2PVEKP91foXoijAzu50= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711372639; c=relaxed/simple; bh=ItVOWrm+zmPgwU0jiuXsWbAoFc6imFhaKj9fNGvBoW8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=O+xN8wTI8ahJO0sxEBDa6TlVDFjeNb3y9T3inHWZdqg0a+RgpO/MomCi//oIpGSGMGJPMxbJM9NR1OSJSSSfGm4hoPW7sgUNWrUAvV499QHiitSOnm094t2rvP9bzr8VlPq2Ogo0RFu2xebNXyGwklm+TcUG85kS2FZU337bGHg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=bWcR5fp0; arc=none smtp.client-ip=209.85.221.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Received: by mail-wr1-f41.google.com with SMTP id ffacd0b85a97d-341b9f6fb2eso1925363f8f.2 for ; Mon, 25 Mar 2024 06:17:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1711372633; x=1711977433; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cLRQo0XRS8LZDKEz8aQDPJI24t7vYnPhkxLETHKtHpE=; b=bWcR5fp0NQgNFHcaVtEWPyXRuGcrCYFsF3e5IzYI5bbaNUXdykaznXyU8VBsquqnUK sijtnJawadYMyWeDdf7RMcWkLDL/hUjhpPISDA0H48hWgQG+IOUJMkchQbmvfqFWHuCu 1TgAZ3L4Gh7aYbA01yubsxwvggwLySBp50+L1b5JQkvLc3DHWycVGKROH1GqT0SI12V8 klpS+S5e+I83W3kF7RlbHLxT3SkkoUN3ou5mL23SlAKbJljPMj1EnGu2t9XRtq5MzWcl LhgXHLlb7i5Efj8DFmaw2SIQTDHCKWYoQzzItkJmY45bvzeXkAZaFen94vbAp7A7D4/P zAJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711372633; x=1711977433; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cLRQo0XRS8LZDKEz8aQDPJI24t7vYnPhkxLETHKtHpE=; b=tRjXUKs8iMApZaVygTFU8J8/GZkQdsR2vhCk3biYpfbjk71Myr7qiw/bKA4MmbZXSQ Q/LZoLY6NXUU7lOT5ATVOE05tRC0mMxBu+8MyiAZnGnsMfSnQUr7t15CrzxKYpQTjPAt 80kBwfCpti1nQi9FleVk0Awz4lDSeedPruZe9nuUk330cOn+nlDCzFp7EU8FiSw8ijhG ZuNNiuVnZSNms+jdmIyIQzN0AaHJRuY6zJmYj6n+tUF1oXHQhpw8nRK8xu1fX6gbS50g wbSg66eja4riQCV52x09iu9MhRdT5W1r+5Vh+5K7wmW0jgPHWzOyDYxQwzJ9I0ldB7n1 uJmQ== X-Forwarded-Encrypted: i=1; AJvYcCUnQy+BzEmFbh0bfbqm7NordTUVxu/aAEYdrsq34gHwZH8A/Dn/vbkv5Xa6ACj2dDTGFI/1iPZDCmPWX8fIbfRr4bKalbaV6xiVTAz3 X-Gm-Message-State: AOJu0Yw1ZUfNOTyJwbU9XCQUhXxPVT1E2pHoCGqOywA8ILOnQc8RxbhO Ri7m1C49GWcjveN9oNBDNoI1mF3rsYcQmewXte+1pFKnnI449lh4nkF9mB9iY5A= X-Received: by 2002:a5d:62c3:0:b0:33e:5fbf:ec4a with SMTP id o3-20020a5d62c3000000b0033e5fbfec4amr5030221wrv.64.1711372633464; Mon, 25 Mar 2024 06:17:13 -0700 (PDT) Received: from brgl-uxlite.home ([2a01:cb1d:75a:e000:861d:8b72:a859:4ce9]) by smtp.gmail.com with ESMTPSA id p11-20020a056000018b00b0033e75e5f280sm9485245wrx.113.2024.03.25.06.17.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Mar 2024 06:17:13 -0700 (PDT) From: Bartosz Golaszewski To: Marcel Holtmann , Luiz Augusto von Dentz , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Kalle Valo , Bjorn Andersson , Konrad Dybcio , Liam Girdwood , Mark Brown , Catalin Marinas , Will Deacon , Bjorn Helgaas , Bartosz Golaszewski , Saravana Kannan , Geert Uytterhoeven , Arnd Bergmann , Neil Armstrong , Marek Szyprowski , Alex Elder , Srini Kandagatla , Greg Kroah-Hartman , Abel Vesa , Manivannan Sadhasivam , Lukas Wunner , Dmitry Baryshkov Cc: linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-wireless@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org, linux-pm@vger.kernel.org, Bartosz Golaszewski Subject: [PATCH v6 11/16] PCI/pwrctl: create platform devices for child OF nodes of the port node Date: Mon, 25 Mar 2024 14:16:19 +0100 Message-Id: <20240325131624.26023-12-brgl@bgdev.pl> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240325131624.26023-1-brgl@bgdev.pl> References: <20240325131624.26023-1-brgl@bgdev.pl> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Bartosz Golaszewski In preparation for introducing PCI device power control - a set of library functions that will allow powering-up of PCI devices before they're detected on the PCI bus - we need to populate the devices defined on the device-tree. We are reusing the platform bus as it provides us with all the infrastructure we need to match the pwrctl drivers against the compatibles from OF nodes. These platform devices will be probed by the driver core and bound to the PCI pwrctl drivers we'll introduce later. Signed-off-by: Bartosz Golaszewski --- drivers/pci/bus.c | 9 ++++++++- drivers/pci/remove.c | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/pci/bus.c b/drivers/pci/bus.c index 826b5016a101..17ab41094c4e 100644 --- a/drivers/pci/bus.c +++ b/drivers/pci/bus.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -342,8 +343,14 @@ void pci_bus_add_device(struct pci_dev *dev) */ pcibios_bus_add_device(dev); pci_fixup_device(pci_fixup_final, dev); - if (pci_is_bridge(dev)) + if (pci_is_bridge(dev)) { of_pci_make_dev_node(dev); + retval = of_platform_populate(dev->dev.of_node, NULL, NULL, + &dev->dev); + if (retval) + pci_err(dev, "failed to populate child OF nodes (%d)\n", + retval); + } pci_create_sysfs_dev_files(dev); pci_proc_attach_device(dev); pci_bridge_d3_update(dev); diff --git a/drivers/pci/remove.c b/drivers/pci/remove.c index d749ea8250d6..fc9db2805888 100644 --- a/drivers/pci/remove.c +++ b/drivers/pci/remove.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 #include #include +#include #include "pci.h" static void pci_free_resources(struct pci_dev *dev) @@ -22,6 +23,7 @@ static void pci_stop_dev(struct pci_dev *dev) device_release_driver(&dev->dev); pci_proc_detach_device(dev); pci_remove_sysfs_dev_files(dev); + of_platform_depopulate(&dev->dev); of_pci_remove_node(dev); pci_dev_assign_added(dev, false); -- 2.40.1