Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp391270pxj; Fri, 7 May 2021 10:50:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxKyGYh2A68DhBR3f4h3MqWSvveEW4vcOvc1uswgnLRHNNkYgjLbr22HQjQ0Em8+QVyWPI8 X-Received: by 2002:a05:6402:1914:: with SMTP id e20mr12813406edz.70.1620409805735; Fri, 07 May 2021 10:50:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620409805; cv=none; d=google.com; s=arc-20160816; b=xDGeeLPxwb12LrX1Ve5Pq+Y9doYER1ImwunPo9o8nIiS7TkNN8EgdFTr4iATHjs1ZA BMsdtG4kQVuHYCFonMdULIqslGBvgBy0oMHpecNJtFtVCoz4VGuJqyyQLlyw2d9bud3M 3qKpzUTpJn7lLGNt4WdT+y4B6npNjf/StgO4ah72k670iM4hmcLjedh8edyUfGCzp6NL RrK0RO6fxQyP1hjEo3xQScAlpHk5iuWxcvsBlFpc7vR+vvLse9pT179VVcp8RfyqhQvf wIMgkGyb4eCbQnmbjXWhdUi+3h3H0/dPkTYbxACNoIIbzJoYi2t1d4TrozLVsb8fcjV5 SxhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-transfer-encoding :content-disposition:mime-version:message-id:subject:cc:to:from:date :dkim-signature; bh=ZNQtxWezjG7jFV088E50hUagXyzBPUX1Jkxl53JVBWI=; b=YJJ70nD80+y8uVtwF/Uko0yFcNsqU8wKVB9a4PWm5WF2sXbWH9k2Qbo3XxX+yIUrzu YuHcTjn0om9T1Dr3AYy2CId7arwmkIyEoMG5f8T62G8CRRqlScPse2oeNU6lrPfyf+Io jkXGuujqX/fWkGuGBVdiVBQpxSS5VLOZcDFV1tou6paYRwkdu2/LdXsxDHAGl/DKiXDj xkX8zsmAET+zePrhugS8CEZfFIzJiLOXk2LxMnj5lZEjIndH+WdtU00duwK7YJJ5hmQ9 L5LGVL7FZaZNzI/9Kha75XeSfjIoKpXn2vRc0Xk9vSoe6p+mcs9xUVLliCUL5XAdo1sp PTsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Qh5hEKGA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dk24si5854980ejb.36.2021.05.07.10.49.41; Fri, 07 May 2021 10:50:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Qh5hEKGA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236731AbhEGNEJ (ORCPT + 99 others); Fri, 7 May 2021 09:04:09 -0400 Received: from mail.kernel.org ([198.145.29.99]:42292 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235836AbhEGNEI (ORCPT ); Fri, 7 May 2021 09:04:08 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id AF6C46143F; Fri, 7 May 2021 13:03:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1620392589; bh=D6tlwEAZ7eCBlX2hF7kas98mcfOt8qkO9WqLf5nvISw=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=Qh5hEKGA1AtUF3SJIVptuc3lTAGNuwd8uyuDNNQLtDHsxiJdQi06lDyRRR+bunggf whyACVAcqrk2cFycZwtAO5JqX1OROu1a69+GBd7ifMooXxM59fpBo6pODO+w/9TRGn VbDkqD1dWbpzQCQUcKvT1RkMdajBpDh4O31BKdeiTKhS2hW09O18mQOFsbh2aTxJcK GYCbOc7D9noT6HQ0HwyW2Bc/Un66Y7LHP3LfqUKK35YIONJ+2icr11xYOtaHI+yjR2 Bqa1uHeftLLv1I9sjrTd+A/kDXNMAK3mUHueaUNJLr2Ohe1FwA1AvmFmnyZK8mztN+ K4co8ETz9d0vw== Date: Fri, 7 May 2021 08:03:07 -0500 From: Bjorn Helgaas To: Pali =?iso-8859-1?Q?Roh=E1r?= Cc: Lorenzo Pieralisi , Thomas Petazzoni , Rob Herring , Bjorn Helgaas , Russell King , Marek =?iso-8859-1?Q?Beh=FAn?= , Remi Pommarel , Xogium , Tomasz Maciej Nowak , Marc Zyngier , linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 06/42] PCI: aardvark: Fix reporting CRS Software Visibility on emulated bridge Message-ID: <20210507130307.GA1448097@bjorn-Precision-5520> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210506153153.30454-7-pali@kernel.org> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, May 06, 2021 at 05:31:17PM +0200, Pali Roh?r wrote: > CRS Software Visibility is supported and always enabled by PIO. > Correctly report this information via emulated root bridge. Maybe spell out "Configuration Request Retry Status (CRS) Software Visibility" once. I'm guessing the aardvark hardware spec is proprietary, but can you at least include a reference to the section that says CRSVIS is supported and CRSSVE is enabled? What is PIO? I assume this is something other than "programmed I/O"? I'd like the commit log to say something about the effect of this change, i.e., why are we doing it? For one thing, I expect lspci will now show "RootCtl: ... CRSVisible+" and "RootCap: CRSVisible+". With PCI_EXP_RTCAP_CRSVIS set, pci_enable_crs() should now try to set PCI_EXP_RTCTL_CRSSVE (which I think is a no-op since advk_pci_bridge_emul_pcie_conf_write() doesn't do anything with PCI_EXP_RTCTL_CRSSVE). So AFAICT this has zero effect on the kernel. Possibly we *should* base some kernel behavior on whether PCI_EXP_RTCTL_CRSSVE is set, but I don't think we do today. > Signed-off-by: Pali Roh?r > Reviewed-by: Marek Beh?n > Fixes: 8a3ebd8de328 ("PCI: aardvark: Implement emulated root PCI bridge config space") > Cc: stable@vger.kernel.org Again, I think this just adds functionality and doesn't fix something that used to be broken. Per [1], patches for the stable kernel should be for serious issues like an oops, hang, data corruption, etc. I know stable kernel maintainers pick up all sorts of other stuff, but that's up to them. I try to limit stable tags to reduce the risk of regressing. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/stable-kernel-rules.rst?id=v5.11 > --- > drivers/pci/controller/pci-aardvark.c | 14 +++++++++++++- > 1 file changed, 13 insertions(+), 1 deletion(-) > > diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c > index 3f3c72927afb..e297ec9ec390 100644 > --- a/drivers/pci/controller/pci-aardvark.c > +++ b/drivers/pci/controller/pci-aardvark.c > @@ -578,6 +578,8 @@ advk_pci_bridge_emul_pcie_conf_read(struct pci_bridge_emul *bridge, > case PCI_EXP_RTCTL: { > u32 val = advk_readl(pcie, PCIE_ISR0_MASK_REG); > *value = (val & PCIE_MSG_PM_PME_MASK) ? 0 : PCI_EXP_RTCTL_PMEIE; > + *value |= PCI_EXP_RTCTL_CRSSVE; > + *value |= PCI_EXP_RTCAP_CRSVIS << 16; > return PCI_BRIDGE_EMUL_HANDLED; > } > > @@ -659,6 +661,7 @@ static struct pci_bridge_emul_ops advk_pci_bridge_emul_ops = { > static int advk_sw_pci_bridge_init(struct advk_pcie *pcie) > { > struct pci_bridge_emul *bridge = &pcie->bridge; > + int ret; > > bridge->conf.vendor = > cpu_to_le16(advk_readl(pcie, PCIE_CORE_DEV_ID_REG) & 0xffff); > @@ -682,7 +685,16 @@ static int advk_sw_pci_bridge_init(struct advk_pcie *pcie) > bridge->data = pcie; > bridge->ops = &advk_pci_bridge_emul_ops; > > - return pci_bridge_emul_init(bridge, 0); > + /* PCIe config space can be initialized after pci_bridge_emul_init() */ > + ret = pci_bridge_emul_init(bridge, 0); > + if (ret < 0) > + return ret; > + > + /* Completion Retry Status is supported and always enabled by PIO */ "CRS Software Visibility", not "Completion Retry Status". The CRSSVE bit is *supposed* to be RW, per spec. Is it RO on this hardware? > + bridge->pcie_conf.rootctl = cpu_to_le16(PCI_EXP_RTCTL_CRSSVE); > + bridge->pcie_conf.rootcap = cpu_to_le16(PCI_EXP_RTCAP_CRSVIS); > + > + return 0; > } > > static bool advk_pcie_valid_device(struct advk_pcie *pcie, struct pci_bus *bus, > -- > 2.20.1 >