Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp1088410rwd; Thu, 25 May 2023 07:56:02 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5v4C3CgI6NRtksmmHWBg+EX4GQfeHMFo6fcV6GmTHzJfLetcTVQRdzA4CDCAMDQC+8GhUb X-Received: by 2002:a05:6a20:1446:b0:102:a593:a17c with SMTP id a6-20020a056a20144600b00102a593a17cmr3954185pzi.0.1685026562474; Thu, 25 May 2023 07:56:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685026562; cv=none; d=google.com; s=arc-20160816; b=tKFOQla3+QERYVW4N5AV8pBpkWBx3FfZ+fv1GM6tkxswe6ztxQoLZ2NDVD/Ett8qcQ OkB8hnDNUyViCWwN4YsN9N0Bi8BDSlv0PEPhEY1L95wp+IGuC/lPuWargqsPTKrTANYX YVlQakWGQSlXn51KwfIOQx6Uu9hNqP/HbD1xMsXCOymCJPnT+3wi8v6zMaAiFVt4brQK TbLXzEtqIqjPxW+gwRyUdrEouqOiPpOOUeTd2ZcX1gI8TdPdKNPix+u4cIfLyXFh4Bet m16Vm6dMd96R/1wPwwu4AfmA2GdlC4585ttnyHFSDEjr+3luEHr4nuqfrGh9h69e/Ta5 7TdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version; bh=Y1iib6e+nUAPGlORtu2efkEafR+LhuhNK16H2AVpcnk=; b=rljpPFoANiRspa+ifSXI7V8AC9c9FbwRKMPtOMSaXxsw0XFb+d62GAjBxsXq0wiKxp f5dcyJzxg0Fm13dPrAg9dmzqIw4Y2b5cDVGGIlzKdEffK9dihZutSEzOby5jhfAK7TxE k6DKYLlauKlbO05Hluy/Fo+u4sXuYUw3pMmOI0CbRADsEa8cHUJ4bodXJ1DBjxOw9iT+ obLgXdFz4uIaoaJrsNzdbm7PoOG5ID5z1tK0DbwIyxY0XR700+0yMl+kF3ST4i7TbE0R rdQKEE/oy8gdfyNI7eDRycFu+HrURDyYZgAuQVokwli+WPJ2kPNk1hswCcD1bQaWV0Fj SWzA== ARC-Authentication-Results: i=1; mx.google.com; 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 72-20020a63044b000000b0051b4f835d4dsi1268673pge.515.2023.05.25.07.55.49; Thu, 25 May 2023 07:56:02 -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; 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 S241589AbjEYOPr convert rfc822-to-8bit (ORCPT + 99 others); Thu, 25 May 2023 10:15:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51140 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232848AbjEYOPp (ORCPT ); Thu, 25 May 2023 10:15:45 -0400 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 82422183; Thu, 25 May 2023 07:15:43 -0700 (PDT) Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-96f44435d92so63296366b.0; Thu, 25 May 2023 07:15:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685024142; x=1687616142; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aQ2g4elRikyixYIC50RK+Kur2gPh7SkgFNK50sXBtIU=; b=ljOzKGF7YfR1iOeq0xMEdkB/yQIaChrCege93rkn+Nr78TUusLUMfJjVSH32sd0H6c BEBJ3Nt0wjMEHVw+z116epDyUXu1wgrM1InGac1Ypxq36uvBC/CBCncRxP4WyHZ6/dgL E7yHZ1u0TyWB2cXUUMDwz1mmxaZzwmco3NRjVdrH0lwK/ATs53ijImVzeBbv/BQslO0F vBk4H5eSF2hRDKMoI9HVBFxB8U+x5JZ5lQmaO6YxPEYNVLSDxZ2e9kp31LiIq9DsGtEA KOgc2hiIqrbWc4mYJfR4tKxvm3nNB0I2A6dIkCypwuXzjAWBXrLOL7un0vGwEcI+ktNZ 9hWQ== X-Gm-Message-State: AC+VfDxU41QVEVqBcv/YMcrtrKrcnr+g2mm7OzNvoUJkUFfZDNErqQ9b Gql7uEK2/IYm0z+Y65hjkeV16/3eQKEkQAB03yU= X-Received: by 2002:a17:906:d3:b0:94f:66af:b1f7 with SMTP id 19-20020a17090600d300b0094f66afb1f7mr18698786eji.1.1685024141748; Thu, 25 May 2023 07:15:41 -0700 (PDT) MIME-Version: 1.0 References: <20230524190726.17012-1-mario.limonciello@amd.com> <20230524190726.17012-2-mario.limonciello@amd.com> In-Reply-To: <20230524190726.17012-2-mario.limonciello@amd.com> From: "Rafael J. Wysocki" Date: Thu, 25 May 2023 16:15:30 +0200 Message-ID: Subject: Re: [PATCH v4 2/2] PCI: Don't assume root ports from > 2015 are power manageable To: Mario Limonciello Cc: Bjorn Helgaas , Mika Westerberg , "Rafael J . Wysocki" , linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, S-k Shyam-sundar , Natikar Basavaraj , Deucher Alexander , linux-pm@vger.kernel.org, Lukas Wunner , Iain Lane Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8BIT X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=no 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 Wed, May 24, 2023 at 9:07 PM Mario Limonciello wrote: > > Using a USB keyboard or mouse to wakeup the system from s2idle fails when > that XHCI device is connected to a USB-C port for an AMD USB4 router. > > Due to commit 9d26d3a8f1b0 ("PCI: Put PCIe ports into D3 during suspend") > all PCIe ports go into D3 during s2idle. > > When specific root ports are put into D3 over s2idle on some AMD platforms > it is not possible for the platform to properly identify wakeup sources. > This happens whether the root port goes into D3hot or D3cold. > > Comparing registers between Linux and Windows 11 this behavior to put > these specific root ports into D3 at suspend is unique to Linux. On an > affected system Windows does not put those specific root ports into D3 > over Modern Standby. > > Windows doesn't put the root ports into D3 because root ports are not > power manageable. > > Linux shouldn't assume root ports support D3 just because they're on a > machine newer than 2015, the ports should also be deemed power manageable. > Add an extra check explicitly for root ports to ensure D3 isn't selected > for these ports. "D3 isn't selected for them if they are not power-manageable through platform firmware." Or similar. With this addressed: Acked-by: Rafael J. Wysocki > > Fixes: 9d26d3a8f1b0 ("PCI: Put PCIe ports into D3 during suspend") > Reported-by: Iain Lane > Closes: https://forums.lenovo.com/t5/Ubuntu/Z13-can-t-resume-from-suspend-with-external-USB-keyboard/m-p/5217121 > Signed-off-by: Mario Limonciello > --- > v3->v4: > * Move after refactor > --- > drivers/pci/pci.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c > index d1fa040bcea7..d293db963327 100644 > --- a/drivers/pci/pci.c > +++ b/drivers/pci/pci.c > @@ -3015,6 +3015,14 @@ bool pci_bridge_d3_possible(struct pci_dev *bridge) > if (dmi_check_system(bridge_d3_blacklist)) > return false; > > + /* > + * It's not safe to put root ports that don't support power > + * management into D3. > + */ > + if (pci_pcie_type(bridge) == PCI_EXP_TYPE_ROOT_PORT && > + !platform_pci_power_manageable(bridge)) > + return false; > + > /* > * It should be safe to put PCIe ports from 2015 or newer > * to D3. > -- > 2.34.1 >