From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 041203B8BB5; Wed, 25 Feb 2026 14:56:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772031402; cv=none; b=tktjas7bY5H4BHMqNbAUONbV+YkXoxvcQiSy2NXivzD8BYdZ5uQ6+CGGhsA+ETbP3hKLLL2So7Ep1EJFDCMwNqerQoHGqIn5QPfd+iQ2pRhCF+hcGZJygNhj+jK/boihKVAJtmJA3OzTyqkQxM3enEuFCjUZJitrhlhLBKIE+Ec= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772031402; c=relaxed/simple; bh=/ekAI3FxEdBx7sDxmd8e8+qIb8tpNERvcll8LbBLE/k=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=YW30GxjBX9wvBBDbq/O7Yymhc7+a/RgcB1kKjVrEbJ4ZFqFWP91Fx0dcxMqeAWS5O8qYy3XE46kPfXPxOUlJHTLjT+Tu5WGMsriAvPBLAnEE62JypVfQjaUvM6/9dYu4rUozAL9U6Pk1YutVxKLKgdXzNgN6shs6PCHc4wBq5BM= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=axqu1wIa; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="axqu1wIa" Received: by smtp.kernel.org (Postfix) with ESMTPSA id B96BDC116D0; Wed, 25 Feb 2026 14:56:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1772031401; bh=/ekAI3FxEdBx7sDxmd8e8+qIb8tpNERvcll8LbBLE/k=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=axqu1wIaL2/ctIDTLk86l1FqIjBKZEVDSINEXFudV+MBsskAR9rsTAyDwpUrI5JJm mtErxFDeN3PzpCOH8msfSvguy4/7cuC7jJFRHAvw4FGXzJGRN7Mjys/gHkLVAnVedy Ol4p16uTOJN3Mg3RiHELnqFagmyA2m3ip7J7UfQCWZsfJaU1RqjlTgI8L2XqZm8Yy+ YV67o2Gli0kR7+BKwXrmJs0YkwkStO2tk7bjc6UM3QL9u6HeAguiRleO3v+oJtavi9 9qaAWTTpi084DL0GDHmDXmuL8hPts3cHccNHu7DUeuOq14571C13WjhU5kf2qzVu8F Z52b7DeQ1R31A== Date: Wed, 25 Feb 2026 15:56:34 +0100 From: Niklas Cassel To: Manikanta Maddireddy Cc: Frank Li , Richard Zhu , Lucas Stach , Lorenzo Pieralisi , Krzysztof =?utf-8?Q?Wilczy=C5=84ski?= , Manivannan Sadhasivam , Rob Herring , Bjorn Helgaas , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Marek Vasut , Yoshihiro Shimoda , Geert Uytterhoeven , Magnus Damm , Thierry Reding , Jonathan Hunter , Kunihiko Hayashi , Masami Hiramatsu , Koichiro Den , Damien Le Moal , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, imx@lists.linux.dev, linux-renesas-soc@vger.kernel.org, linux-tegra@vger.kernel.org Subject: Re: [PATCH 5/9] PCI: dwc: Replace BAR_RESERVED with BAR_DISABLED in glue drivers Message-ID: References: <20260217212707.2450423-11-cassel@kernel.org> <20260217212707.2450423-16-cassel@kernel.org> Precedence: bulk X-Mailing-List: linux-tegra@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: On Mon, Feb 23, 2026 at 10:16:51AM +0530, Manikanta Maddireddy wrote: > > On 18/02/26 3:45 am, Frank Li wrote: > > On Tue, Feb 17, 2026 at 10:27:11PM +0100, Niklas Cassel wrote: > > > Most DWC based EPC glue drivers that have BARs marked as BAR_RESERVED in > > > epc_features also call dw_pcie_ep_reset_bar() for these reserved BARs in > > > ep->ops->init(). > > > > > > An EPF driver will be able to get/enable BARs that have been disabled/reset > > > unless they are marked as BAR_RESERVED (see pci_epc_get_next_free_bar()). > > > > > > Thus all EPC drivers that have a BAR marked as BAR_RESERVED in epc_features > > > AND call dw_pcie_ep_reset_bar() should really be marked as BAR_DISABLED. > > > > > > BARs that are marked as BAR_RESERVED in epc_features but for which > > > dw_pcie_ep_reset_bar() is not called in ep->ops->init() are still kept as > > > BAR_RESERVED. > > combine the same condition together to make easy to read. like > > > > "For BAR_RESERVED bars, change to BAR_DISABLED if call dw_pcie_ep_reset_bar(). > > and keep as BAR_RESERVED if not dw_pcie_ep_reset_bar() in ep-ops-init()" > > > > Frank > > > > > No EPC drivers outside drivers/pci/controllers/dwc mark their BARs as > > > BAR_RESERVED, so there is nothing to do in non-DWC based EPC drivers. > > > > > > Signed-off-by: Niklas Cassel Note: the proper tag is Tested-by. (I noticed that b4 did not pick up your tags.) > Tested by: Manikanta Maddireddy > > > --- > > > drivers/pci/controller/dwc/pci-imx6.c | 12 ++++++------ > > > drivers/pci/controller/dwc/pcie-rcar-gen4.c | 6 +++--- > > > drivers/pci/controller/dwc/pcie-tegra194.c | 8 ++++---- > > > drivers/pci/controller/dwc/pcie-uniphier-ep.c | 4 ++-- > I see BAR_RESERVED in pci-keystone.c driver in linux-next branch. > Do you have any patch which changed BAR_RESERVED to different type > in pci-keystone.c driver? No, I did not change keystone, because that is the only DWC base glue driver that has never disabled these BARs by default. I will add a TODO to the keystone driver: diff --git a/drivers/pci/controller/dwc/pci-keystone.c b/drivers/pci/controller/dwc/pci-keystone.c index 20fa4dadb82a..576a78a9f6e5 100644 --- a/drivers/pci/controller/dwc/pci-keystone.c +++ b/drivers/pci/controller/dwc/pci-keystone.c @@ -933,6 +933,11 @@ static const struct pci_epc_features ks_pcie_am654_epc_features = { DWC_EPC_COMMON_FEATURES, .msi_capable = true, .msix_capable = true, + /* + * TODO: BAR_RESERVED should either be replaced with BAR_DISABLED or, + * if the should continue to be enabled, then the driver should define + * what is behind the reserved BARs, see struct pci_epc_bar_rsvd_region. + */ .bar[BAR_0] = { .type = BAR_RESERVED, }, .bar[BAR_1] = { .type = BAR_RESERVED, }, .bar[BAR_2] = { .type = BAR_RESIZABLE, },