Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp2991609pxb; Tue, 12 Jan 2021 03:47:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJx0YJojF+uL0lsbwT9SyuHXRN3gibrp/QctiT2hp1sd1z8Eo5KklBAKT3cxCcGEKe8ANxdB X-Received: by 2002:a05:6402:388:: with SMTP id o8mr3016261edv.359.1610452065108; Tue, 12 Jan 2021 03:47:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610452065; cv=none; d=google.com; s=arc-20160816; b=ms+a2eI2X1TG0rO1TR6k2ekIBYyklVteGly5gxOzevBDN6O9x/2cWGFViVyjXmPZ6U JF7Yehok1wuSSt5TonmO5gFwk5hLXo6Mi4CjRqpIuIwWKBlJVENWnyY7ScRy4EjTgrkA OiRZzb4iwAcJbnIlh0I0gT7IVQHOxFVaRkEYVt077knF4KyWnX2f9nX2VMcYQy+xg9No OYpqTdemgH933wfrIpKjQgaMfnWBcRNdI839IKf4iBnlsKF540m9rDTAWtBS65bmFdHH 5okNkF1pdsLQYHnqDokuU65rJCllXqhuic4ZRzwhql5YwjSPgFf7Goh0vLOvctsNUC38 yrRQ== 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=vcxzFRC3QqajwKXtnr3rvlSJkzsApn1wGE9frhGONmw=; b=U6xTx5ztB6PCDSyjyGYOLLUcDPDmT5BCF84tk+0qdgMS34NZJAL1HgbPms5UWS+47y wqnarPh7J7KRDzI5T4MSfQe6NNkkBzJ0U/2dRnrYh3VfVRuuZeS7s975/qHDuDwcATb/ CXfHZxdL1GJqOcDiHH87X2fV6KDW37h1IaBxXWmhrEG53bPLBKkZG38wi7IyOBAR1Ifc 8+McaEPoxAY1MI7a/qNLwjgzyRbEEbMgpjnfvbQBxsNyKszzP8atCII+EOGlFB0YAb+x Cj2gtcusFaGg5TUWFr1JI0dDeAsg08pkVTVIWIj9/WMtF6hVU2TBOkGI3MbUB/1eDHoq Cqqw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=OMtpx1iB; 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 p18si1000868ejd.518.2021.01.12.03.47.21; Tue, 12 Jan 2021 03:47:45 -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=OMtpx1iB; 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 S2404535AbhALINp (ORCPT + 99 others); Tue, 12 Jan 2021 03:13:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40588 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404521AbhALINo (ORCPT ); Tue, 12 Jan 2021 03:13:44 -0500 Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com [IPv6:2607:f8b0:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 71503C061794 for ; Tue, 12 Jan 2021 00:13:04 -0800 (PST) Received: by mail-pg1-x52c.google.com with SMTP id i5so952839pgo.1 for ; Tue, 12 Jan 2021 00:13:04 -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=vcxzFRC3QqajwKXtnr3rvlSJkzsApn1wGE9frhGONmw=; b=OMtpx1iBgoebcdpgyFngx+rFvAZPV3UlPMZ8+mDwIrm9vmkoZPigaoYI5f7xCgaFtl ZFOLQzCmfkmPv2NNtq5Qc86n9qA28IoR5EcgGiCGW3fEwUb4YgbqfIAwn8zjxAAVRgEZ +d1ake4m/7s7sk3G5Q5rUVQzCIKDeH4uM5yiiK2PEGtIaI4kbdGQjq8/DH06yVoRpGux /wBzhf64lRgw2r/9YzRsl+9AceBsVbLsKDSUpUcX5pS/CUCWSfn5IcSCb9BX8KAGk9d6 z7qWqkZGCuwaRqTmFWxm06NHvSHD0IthKrHzxGvFpXJHKRwQjmxqsu0A4u6crCioGVwK BcwA== 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=vcxzFRC3QqajwKXtnr3rvlSJkzsApn1wGE9frhGONmw=; b=ARgdvlkmxBmTXJ+5519g9DZUajXi69H5vsEOzi5TmWU0gmRatflY3sDJBYnUHok34U +bCCaB2NUo91UPnl4we3jBvlKaVStfbdXs0b6icGDKFZhrpAyOP1eIkaRvXr9Muh0C3V s0xA36uba/RjJGcoruGY5FoHCbZ/kLbudwY0mdgIKg2kdwJrgryHf4AEbWIPIGW2s0+O OMwQekt894hbjmpmXOmsH68jmbwhBXLoKAdGfg/uX1VUxvJXONRXy+79JBpIppp1xv/t 2p9luALzbdgEBc2ufaJxuUEZzKFrHdm7TdYprzj89MjROpKcAKPTOGwygIHzVn90ag0J Ha1A== X-Gm-Message-State: AOAM532Zq+a5V8Ilmr8e4pH51cTe3q5M8iLEv6zgP9yNVFDsLGR9iX4b N/Ihx32G1mDbq3iQ9WINoRA= X-Received: by 2002:a63:c64a:: with SMTP id x10mr3715467pgg.14.1610439184002; Tue, 12 Jan 2021 00:13:04 -0800 (PST) Received: from varodek.localdomain ([106.215.30.102]) by smtp.gmail.com with ESMTPSA id l2sm2152381pjz.27.2021.01.12.00.13.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Jan 2021 00:13:03 -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 2/3] sis-agp: use generic power management Date: Tue, 12 Jan 2021 13:39:23 +0530 Message-Id: <20210112080924.1038907-3-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/sis-agp.c | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/drivers/char/agp/sis-agp.c b/drivers/char/agp/sis-agp.c index 14909fc5d767..f8a02f4bef1b 100644 --- a/drivers/char/agp/sis-agp.c +++ b/drivers/char/agp/sis-agp.c @@ -217,26 +217,14 @@ static void agp_sis_remove(struct pci_dev *pdev) agp_put_bridge(bridge); } -#ifdef CONFIG_PM +#define agp_sis_suspend NULL -static int agp_sis_suspend(struct pci_dev *pdev, pm_message_t state) +static int __maybe_unused agp_sis_resume( + __attribute__((unused)) struct device *dev) { - pci_save_state(pdev); - pci_set_power_state(pdev, pci_choose_state(pdev, state)); - - return 0; -} - -static int agp_sis_resume(struct pci_dev *pdev) -{ - pci_set_power_state(pdev, PCI_D0); - pci_restore_state(pdev); - return sis_driver.configure(); } -#endif /* CONFIG_PM */ - static const struct pci_device_id agp_sis_pci_table[] = { { .class = (PCI_CLASS_BRIDGE_HOST << 8), @@ -419,15 +407,14 @@ static const struct pci_device_id agp_sis_pci_table[] = { MODULE_DEVICE_TABLE(pci, agp_sis_pci_table); +static SIMPLE_DEV_PM_OPS(agp_sis_pm_ops, agp_sis_suspend, agp_sis_resume); + static struct pci_driver agp_sis_pci_driver = { .name = "agpgart-sis", .id_table = agp_sis_pci_table, .probe = agp_sis_probe, .remove = agp_sis_remove, -#ifdef CONFIG_PM - .suspend = agp_sis_suspend, - .resume = agp_sis_resume, -#endif + .driver.pm = &agp_sis_pm_ops, }; static int __init agp_sis_init(void) -- 2.30.0