From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.6 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 33091C432BE for ; Mon, 30 Aug 2021 16:25:34 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E7BAE60F4B for ; Mon, 30 Aug 2021 16:25:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org E7BAE60F4B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=MStj6/x8RlQ2rZ4YTVVHm7WZaacctmXLdZSNWngQSNk=; b=K0IwnTxSZJG5S4jMKZOiuxGFEX RPDMJKGy2XHrMyHejnF7x47wxzwCICp6K9XpFmcmPXAQ4QdPpk3vIgr1RFZ1Tq9Id92YcZYN27NCT OdTEz6CqHbJtCvkPJlc/K1Bf5lVaHNYSriZry9VZDGfCx7hc7Vvu5sTnYBaSvkAB2RW7LrZPWlz8B gqTTjNyXvh99f+nH2V5qGGuN9imquja0Wc25kBePAPumjfCVTcqt0/57iXShK9+k95oY/d+kXt+32 +cTaJV5pxifiWUXfcTajNTgk7+3ycA5Q6UKupuNueo3gMk8M9nXOK1yAoFy6Jjobu1HXqam+RTmeA F4id5moA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mKk4M-0003vc-Tw; Mon, 30 Aug 2021 16:23:35 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mKk4J-0003v4-RO; Mon, 30 Aug 2021 16:23:33 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 480F91FB; Mon, 30 Aug 2021 09:23:29 -0700 (PDT) Received: from [192.168.122.166] (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 46A0E3F766; Mon, 30 Aug 2021 09:23:28 -0700 (PDT) Subject: Re: [PATCH v3 2/4] PCI: brcmstb: Add ACPI config space quirk To: nicolas saenz julienne , linux-pci@vger.kernel.org Cc: lorenzo.pieralisi@arm.com, bhelgaas@google.com, rjw@rjwysocki.net, lenb@kernel.org, robh@kernel.org, kw@linux.com, f.fainelli@gmail.com, bcm-kernel-feedback-list@broadcom.com, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rpi-kernel@lists.infradead.org, linux-kernel@vger.kernel.org References: <20210826071557.29239-1-jeremy.linton@arm.com> <20210826071557.29239-3-jeremy.linton@arm.com> <44ad79081412af289c68e74cdecb6a2baa2e873c.camel@kernel.org> From: Jeremy Linton Message-ID: <5c39cf29-a08f-48d1-b873-ce0fda763d66@arm.com> Date: Mon, 30 Aug 2021 11:23:27 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: <44ad79081412af289c68e74cdecb6a2baa2e873c.camel@kernel.org> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210830_092331_985363_0BD72ECE X-CRM114-Status: GOOD ( 18.24 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Hi, On 8/30/21 3:36 AM, nicolas saenz julienne wrote: > Hi Jeremy, > sorry for the late reply, I've been on vacation. > > On Thu, 2021-08-26 at 02:15 -0500, Jeremy Linton wrote: > > [...] > >> +static void __iomem *brcm_pcie_map_conf2(struct pci_bus *bus, >> + unsigned int devfn, int where) >> +{ >> + struct pci_config_window *cfg = bus->sysdata; >> + void __iomem *base = cfg->win; >> + int idx; >> + u32 up; >> + >> + /* Accesses to the RC go right to the RC registers if slot==0 */ >> + if (pci_is_root_bus(bus)) >> + return PCI_SLOT(devfn) ? NULL : base + where; >> + >> + /* >> + * Assure the link is up before sending requests downstream. This is done >> + * to avoid sending transactions to EPs that don't exist. Link flap >> + * conditions/etc make this race more probable. The resulting unrecoverable >> + * SERRORs will result in the machine crashing. >> + */ >> + up = readl(base + PCIE_MISC_PCIE_STATUS); >> + if (!(up & PCIE_MISC_PCIE_STATUS_PCIE_DL_ACTIVE_MASK)) >> + return NULL; >> + >> + if (!(up & PCIE_MISC_PCIE_STATUS_PCIE_PHYLINKUP_MASK)) >> + return NULL; > > Couldn't this be integrated in the original brcm_pcie_map_conf()? IIUC there is > nothing ACPI specific about it. It'd also make for less code duplication. That is where I started with this, but it wasn't the linkup check/etc which caused me to hoist it but the fact that if ACPI quirks are enabled they end up statically built into the kernel. While if this host bridge is enabled, it can end up being a module, and the resulting mess I created trying to satisfy the CONFIG variations. I'm not much of a fan of copy/paste programming, but that IMHO ended up being the cleanest here. _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel