Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp3449833pxb; Tue, 12 Jan 2021 15:17:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJzIrxujgHlOBJWq3SBWQTrR8enoK0fBXxKrxwxWU37OUxQuFhO9C1D96JcU1a4t+qfufuqm X-Received: by 2002:a17:906:780c:: with SMTP id u12mr778360ejm.125.1610493432031; Tue, 12 Jan 2021 15:17:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610493432; cv=none; d=google.com; s=arc-20160816; b=i7hu9JkDfJVzwD/VAufYJTaZAP7RUiSYoLGhNpu0avXdPI5PPbuCNlODdBAx8lWw7q u+86kcgCaQ+RYBLPlV0BynhObt50ou5fsJ42XOVPFQOpojroHeB0kD4nf/SE0MqUSjS9 M3dLR+dAoFaolaECfStcCMdR6Rzxz6hfKDSj9PjO9qODpsTAMbVIyfCbCo11OjzKn1VI Pih5DDibAwE/1OyycX9JIW+miCNrSPJas7VSH7YUV5QG6Ms4XLNSbu1W/htp/h2H2N0W CWu0Obciz6jKluE2DmuPl15RyMeoK26fjjBmK2c+jte+mbTa2AglO2CJP2zwmd5HMf7m J9UQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=m+5AY09mfGyaAgyXWDCF4dcfRL6QuYPJBXH3t6/wgY4=; b=ydTw1GsdLvkNhBPmu/rncl6key71vwYXCGadnzSqtSYtWOaUmjD6+/LiJW4tUvbSfn gBTR2507A+NT1fdz79utHuN8+jMHy/8bvREjGKn7PB0Z1Z19QycphzijsIAV8SbjfWDO bmZfj114hE+szgtEo8NfX3RDNRfTwfqeJ3ru2zfJxbCxAKTVV2qlxwiI5IAis2BlI8Y9 7KfGWJSJmDu8I5BD+U+m6zgNhuF3lxOE+ewkG7eK7PDPw1Xun+EIpSNcxmHQOCXpZBr9 GONjNd5Ib3K/PHPpKj5Mf+v5E/dJq7UUM9bUlG3xXSWq1kD1ICdsZi6SR0jj/d8/U1RY LUmw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=tgoWzJQE; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id ml22si81399ejb.172.2021.01.12.15.16.48; Tue, 12 Jan 2021 15:17:12 -0800 (PST) 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=@gmail.com header.s=20161025 header.b=tgoWzJQE; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2392276AbhALINk (ORCPT + 99 others); Tue, 12 Jan 2021 03:13:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40568 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2392259AbhALINj (ORCPT ); Tue, 12 Jan 2021 03:13:39 -0500 Received: from mail-pj1-x102b.google.com (mail-pj1-x102b.google.com [IPv6:2607:f8b0:4864:20::102b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 63069C061786 for ; Tue, 12 Jan 2021 00:12:59 -0800 (PST) Received: by mail-pj1-x102b.google.com with SMTP id m5so1167734pjv.5 for ; Tue, 12 Jan 2021 00:12:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=m+5AY09mfGyaAgyXWDCF4dcfRL6QuYPJBXH3t6/wgY4=; b=tgoWzJQEWSCrjTpWAuH+eOFGUIx0zm8xNscUoWzeut2TGtSyxXnZLizlperYZgt8D2 LiqVZWsBCBZtA1hE2qf9EoEGSNBQxGaizlDTweAFYpG+8eIaCdhNlF/iTzZjsAUAaAqm 4u7iCrCBPbV/1llWf97rBO0MCgvvMJNf1H8Cetl3kwVG/vU3HB+Aj31KMnb6/DuZKUZQ 6X6dtrS0Jxa35L5aJGTlF+w5FzUgTCdT/ttRwEopMrB8k9vyqdCZdhN/FVcc39PUhgGM QLsPeCw6/WUfY2vXq2ird3hRJDUFb1JZ+oDvmKyT7dwMo5gTwUQrUPQJsGNC4yECz6wF BBUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=m+5AY09mfGyaAgyXWDCF4dcfRL6QuYPJBXH3t6/wgY4=; b=a+YZwTQbzX3eWwDo8J+wkVBVwr6yzDhGcrFHBjntBwlUDTaiJE7Bsk430emCCL4Qzx usVpgKFp3vgjOVWvKPuaUwbzgGJiWjKDGudxTGFhnJVovX35zxa/meimnvSSRNbDSgZk i/qkFVHlvqlez2ckeuBIZHLX6hh7qAbW2qwlNSeqrxBUqKvq0X4PLficH5IQduGWSBg+ ic7U4GsMl3ySRy8gDm+kHEzY/KAJIHsH9WI4ByIQQNhd7ksIZ6OXwO9JJ86qNjp7oUP9 j0ozGb9SM9wMabyGSdWa7kZxWgm0rDBtyayVhfhmShjp2lqmawMlnwlFuPCn6/s8INiR EeeQ== X-Gm-Message-State: AOAM533j8rPq/DasMiD2fr/POa/cFLSgTPLxaL0qU+BG2Uo8uc9cFSKp 7ETzORfu7j8gCpk4j2CG6LQ= X-Received: by 2002:a17:902:d694:b029:dc:9820:12fb with SMTP id v20-20020a170902d694b02900dc982012fbmr3643095ply.19.1610439178993; Tue, 12 Jan 2021 00:12:58 -0800 (PST) Received: from varodek.localdomain ([106.215.30.102]) by smtp.gmail.com with ESMTPSA id l2sm2152381pjz.27.2021.01.12.00.12.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Jan 2021 00:12:58 -0800 (PST) From: Vaibhav Gupta To: Bjorn Helgaas , Bjorn Helgaas , Bjorn Helgaas , Vaibhav Gupta , David Airlie Cc: Vaibhav Gupta , linux-kernel@vger.kernel.org, linux-kernel-mentees@lists.linuxfoundation.org, Shuah Khan Subject: [PATCH v2 1/3] amd64-agp: use generic power management Date: Tue, 12 Jan 2021 13:39:22 +0530 Message-Id: <20210112080924.1038907-2-vaibhavgupta40@gmail.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210112080924.1038907-1-vaibhavgupta40@gmail.com> References: <20200717074937.296192-1-vaibhavgupta40@gmail.com> <20210112080924.1038907-1-vaibhavgupta40@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Drivers should do only device-specific jobs. But in general, drivers using legacy PCI PM framework for .suspend()/.resume() have to manage many PCI PM-related tasks themselves which can be done by PCI Core itself. This brings extra load on the driver and it directly calls PCI helper functions to handle them. Switch to the new generic framework by updating function signatures and define a "struct dev_pm_ops" variable to bind PM callbacks. Also, remove unnecessary calls to the PCI Helper functions along with the legacy .suspend & .resume bindings. After upgrading, .suspend() became an empty-body function, hence defined as NULL. Signed-off-by: Vaibhav Gupta --- drivers/char/agp/amd64-agp.c | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c index b40edae32817..dc78a4fb879e 100644 --- a/drivers/char/agp/amd64-agp.c +++ b/drivers/char/agp/amd64-agp.c @@ -588,20 +588,11 @@ static void agp_amd64_remove(struct pci_dev *pdev) agp_bridges_found--; } -#ifdef CONFIG_PM +#define agp_amd64_suspend NULL -static int agp_amd64_suspend(struct pci_dev *pdev, pm_message_t state) +static int __maybe_unused agp_amd64_resume(struct device *dev) { - pci_save_state(pdev); - pci_set_power_state(pdev, pci_choose_state(pdev, state)); - - return 0; -} - -static int agp_amd64_resume(struct pci_dev *pdev) -{ - pci_set_power_state(pdev, PCI_D0); - pci_restore_state(pdev); + struct pci_dev *pdev = to_pci_dev(dev); if (pdev->vendor == PCI_VENDOR_ID_NVIDIA) nforce3_agp_init(pdev); @@ -609,8 +600,6 @@ static int agp_amd64_resume(struct pci_dev *pdev) return amd_8151_configure(); } -#endif /* CONFIG_PM */ - static const struct pci_device_id agp_amd64_pci_table[] = { { .class = (PCI_CLASS_BRIDGE_HOST << 8), @@ -738,15 +727,14 @@ static const struct pci_device_id agp_amd64_pci_promisc_table[] = { { } }; +static SIMPLE_DEV_PM_OPS(agp_amd64_pm_ops, agp_amd64_suspend, agp_amd64_resume); + static struct pci_driver agp_amd64_pci_driver = { .name = "agpgart-amd64", .id_table = agp_amd64_pci_table, .probe = agp_amd64_probe, .remove = agp_amd64_remove, -#ifdef CONFIG_PM - .suspend = agp_amd64_suspend, - .resume = agp_amd64_resume, -#endif + .driver.pm = &agp_amd64_pm_ops, }; -- 2.30.0