Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp1339439rwr; Fri, 5 May 2023 12:31:32 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7NpAHbZdSVfphMnnytoAFwJAmMnHjHh5BjHaPU0rETftVwJIyhJbfURMsF0UgQz1YhDwVd X-Received: by 2002:a17:903:230e:b0:1a6:8031:59e7 with SMTP id d14-20020a170903230e00b001a6803159e7mr3002386plh.46.1683315091778; Fri, 05 May 2023 12:31:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683315091; cv=none; d=google.com; s=arc-20160816; b=AIgMZjeSGbZPtJxIBA6NcXbMIdmsBGn+B86B8kX2CTCvQeIaXA4fjyHUgP0I5p1oZo 5oG3v9F2K1R7LuKYYH2NAfke3lErzKR/XIRyRz/2130wKwP8cfjov0ObKxMqfB9Y0qbB XTb/gMHb3AWlr7TlX8XJbh9cB6l8QIGQE2WIYb1K98GkiLtPMDssU4Dmng3bYjxEdom6 T5PuxYHCJMDK+VuIWbenY/qpji6mASX+ZTnN2ldN6UIxwL1vNUHzINIBR0/DG4KHVDZX SQsqwzlox22W2kqEeQvweYeVUXcHgHNTNIQWWpLFPs+a6J1hF3Re/YSEYsAadQzv2DC/ WTyg== 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-disposition:mime-version :message-id:subject:cc:to:from:date:dkim-signature; bh=L2vJbYdJ/hQ4ZrJ5Nkyac6dAZ+U5CdChoqrvA/9YQxY=; b=RaQeT8UdX5miv8vMQNBIK6bzZBjkG7CAK9Lw5kXETPL0xZWjFNKY26VcIKTiEXo6j1 NDlvlExiY9msTExz2iy7LI1HiODM6n3j+XXeViQwDXCqQ1IA4CGzm7Vgsu7Q6vB20Gb+ GPUBxmFtyp66M44KJfHAf7TZ0oq8u7osgNR2xhGsdYCJqwii9GkEfn0uAfVnVOoMkw91 zUw13Rr2QiN6pn20Gng1txqP0VENK9Kc1RlZgUQOLu2Y8eyI/aK8Fwk3cUfRZwbUNEdP eNyiC38Jei8SKbDI8it1WFimaz3hH7PF5hFfLkSs+2BcqFXBcvMTKZjJ7WgZBPOGD9wT H7wQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YwTdfSXX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z6-20020a170903018600b001a6b9ab7025si2563624plg.359.2023.05.05.12.31.16; Fri, 05 May 2023 12:31:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YwTdfSXX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S233313AbjEETWO (ORCPT + 99 others); Fri, 5 May 2023 15:22:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232937AbjEETWM (ORCPT ); Fri, 5 May 2023 15:22:12 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C46A6E6A; Fri, 5 May 2023 12:22:11 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 5D57264004; Fri, 5 May 2023 19:22:11 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 85A84C433D2; Fri, 5 May 2023 19:22:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1683314530; bh=F1EwEIEQYCrE2wRZwLhg+lUx3xE4/L3DxAf6BZZ3Unk=; h=Date:From:To:Cc:Subject:In-Reply-To:From; b=YwTdfSXXkUaVZVYnPIvGcCvU1pI5Ybu20g/RPIVeMA9cbkxDIZoOCdzm5IriR0OEC 45lphTtTVD6/Gbb65q6Gdv/U5viDq97AFV2UvvtSyCYRWRef/av4ZWxOtPwlaIUga4 imhV2c6c66VTs2i6sW/NNbY74EHya4ywNXL1h9VIaV/w/UB4OmDrWbLU9vm92EJlnP eoPNa7lmXqAgWTlyCs1J7Fc1Yi0PDq/B41IwNkfm4knaSHXPCxEPukq1dpaG3qN7kx yI3jzkjA84g/8/nFPRkbamP8CzZlCHycvlNhc9tr5N1Xx6EV4CjQStQApUWRqKuLIs C4aWftP8Y982g== Date: Fri, 5 May 2023 14:22:08 -0500 From: Bjorn Helgaas To: Kai-Heng Feng Cc: bhelgaas@google.com, mika.westerberg@linux.intel.com, koba.ko@canonical.com, sathyanarayanan.kuppuswamy@linux.intel.com, Mahesh J Salgaonkar , Oliver O'Halloran , linuxppc-dev@lists.ozlabs.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v4 2/3] PCI/AER: Disable AER interrupt on suspend Message-ID: <20230505192208.GA970992@bhelgaas> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230424055249.460381-2-kai.heng.feng@canonical.com> X-Spam-Status: No, score=-7.3 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Apr 24, 2023 at 01:52:48PM +0800, Kai-Heng Feng wrote: > PCIe service that shares IRQ with PME may cause spurious wakeup on > system suspend. > > PCIe Base Spec 5.0, section 5.2 "Link State Power Management" states > that TLP and DLLP transmission is disabled for a Link in L2/L3 Ready > (D3hot), L2 (D3cold with aux power) and L3 (D3cold), so we don't lose > much here to disable AER during system suspend. > > This is very similar to previous attempts to suspend AER and DPC [1], > but with a different reason. What is the reason? I assume it's something to do with the bugzilla below, but the commit log should outline the user-visible problem this fixes. The commit log basically makes the case for "why should we merge this patch." I assume it's along the lines of "I tried to suspend this system, but it immediately woke up again because of an AER interrupt, and disabling AER during suspend avoids this problem. And disabling the AER interrupt is not a problem because X" > [1] https://lore.kernel.org/linux-pci/20220408153159.106741-1-kai.heng.feng@canonical.com/ > Link: https://bugzilla.kernel.org/show_bug.cgi?id=216295 > > Reviewed-by: Mika Westerberg > Signed-off-by: Kai-Heng Feng > --- > drivers/pci/pcie/aer.c | 22 ++++++++++++++++++++++ > 1 file changed, 22 insertions(+) > > diff --git a/drivers/pci/pcie/aer.c b/drivers/pci/pcie/aer.c > index 1420e1f27105..9c07fdbeb52d 100644 > --- a/drivers/pci/pcie/aer.c > +++ b/drivers/pci/pcie/aer.c > @@ -1356,6 +1356,26 @@ static int aer_probe(struct pcie_device *dev) > return 0; > } > > +static int aer_suspend(struct pcie_device *dev) > +{ > + struct aer_rpc *rpc = get_service_data(dev); > + struct pci_dev *pdev = rpc->rpd; > + > + aer_disable_irq(pdev); > + > + return 0; > +} > + > +static int aer_resume(struct pcie_device *dev) > +{ > + struct aer_rpc *rpc = get_service_data(dev); > + struct pci_dev *pdev = rpc->rpd; > + > + aer_enable_irq(pdev); > + > + return 0; > +} > + > /** > * aer_root_reset - reset Root Port hierarchy, RCEC, or RCiEP > * @dev: pointer to Root Port, RCEC, or RCiEP > @@ -1420,6 +1440,8 @@ static struct pcie_port_service_driver aerdriver = { > .service = PCIE_PORT_SERVICE_AER, > > .probe = aer_probe, > + .suspend = aer_suspend, > + .resume = aer_resume, > .remove = aer_remove, > }; > > -- > 2.34.1 >