Received: by 2002:a05:6a10:2785:0:0:0:0 with SMTP id ia5csp207051pxb; Thu, 14 Jan 2021 04:00:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJzx+1KEI8mpB9ODtWdiLg0jwElMq8zmpeIugD1q+aC36gC50/fybO4mfIe4UwNeSsxXU55+ X-Received: by 2002:a05:6402:1a2f:: with SMTP id be15mr5489239edb.209.1610625656868; Thu, 14 Jan 2021 04:00:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610625656; cv=none; d=google.com; s=arc-20160816; b=LqyB84IA6AdoZJr+gi0O8hYI8MUZHTkRDQJxj6hpcflwiVt4PRmmPm+seTdFdaqtHE kqv9Ss0E1By7FfhQ4pmKdhZwPfx6qIFPPhjCzRdzGcL8Kvwja5sTbCyXeie0/RoPlTx1 3UjaUK1C20np10E5EcmZvEsZqvujsBx4BcPUyoQwp9IjJtVTk/o01NusBZw8liUao8U2 i6g8pfENX9T/V3CfkppexCXQR4EuSJOSVMiMlvaCxw4mxR2c1gt7eRB1GShkcLudgVTS CtJvpj38TPc7CpHgTjISIin1RkV1LD+bH9uvXZU9VPjXa8KI1Y18vJUlcpMI6PeSh4vB oE5g== 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=aE8Gpce0dusI5ufIrjvwfjO/RPhWK1H8CVWXZPRQ1bg=; b=nkaA8WCULLFFc5bSVbJMg3JDwlZBR7rlXny/h7v8ULOO5c9IzubrHS0wLgwr4ccQJ+ Vw5vymXzDmQ+7LNuh2wyvhEibdaKlAAVebk8rme+BPK/74xT0GGkcsD/MI1+d5DXI1Ie X3YTogC/8AcwsZF/9P7ajgHXdRCVPTzX74jZpbiN5Xdln8CPCWI845xHI6tKKZKrLfId 2GR5bYnMZvg3sTKBMAKcwX+j2PgmNxS6eqMxDGTyx2vVda2lVirxEVipp3VTB7xiAUGQ TWU/MpjYz2zkofhhX+IXkagg7TGbxiK2Gp813B2WiIooSSIPY50v42G/8clUulj5FzaZ 22+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ePQFrPvQ; 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 j11si1460180eds.296.2021.01.14.04.00.31; Thu, 14 Jan 2021 04:00:56 -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=ePQFrPvQ; 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 S1727820AbhANL6W (ORCPT + 99 others); Thu, 14 Jan 2021 06:58:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60534 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726008AbhANL6W (ORCPT ); Thu, 14 Jan 2021 06:58:22 -0500 Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B0A14C061575; Thu, 14 Jan 2021 03:57:41 -0800 (PST) Received: by mail-pj1-x102d.google.com with SMTP id b5so3065068pjk.2; Thu, 14 Jan 2021 03:57:41 -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=aE8Gpce0dusI5ufIrjvwfjO/RPhWK1H8CVWXZPRQ1bg=; b=ePQFrPvQmQWHau9JTuzYSKkg2wRECTDCJLUujoltBw3cIcB+ShZZQblwreb7cJXj7M MmD76EmvTK0GgvEJr+/KA1HyI1Gu/5dbg9d1o1ZAZxkIfQ2nIPexZxe0pmsx0LcJ8I7A 9tc+l2b0teCDELNU2kQThm1GfwDuD/UUyjSQKwZcQvYVKyg8ExJ9rQckQwh6bRfKBBvZ 8NZpdW3vQHU2bCNPMBtaYjhupqfoBekRmxxg+AIdvOwnSQyYv+faeiL84i/88JvIp5Gv eRbNdQhI5hlmL0pC3sZ7dPmO0Egx5P+g7F2bFscNhqnmLZUr1AzalFvMTbVkF2rxU8nj SYug== 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=aE8Gpce0dusI5ufIrjvwfjO/RPhWK1H8CVWXZPRQ1bg=; b=FZS2W+1JFvj/+pvjEU8wUvPDX1qf6m8rDSVHoIWkIzdprUYL+QmdrWA6OBeDC0hwOC s8qJTcaNfs/5RogO9+QHIrP1Unvy/XYcYWCB5Adqap96ruYA+7gbbEkCt2d0z8TjASLd hEUqGviaqKZS1OKRXcFzwSFeDUDCn9xuCcYzBOaQuGPmL9vLLms8cy+01jp93ky15fS4 +S1urBgKSzTNL1BqlsqPeCVg6Rqk9Gmu+SqiLLhkPL+wBS5QXINFNt8kofB3JfnWkS2o HaANz0jiJD2AZ+g9ZWB5d4neSx8kFXtHyZOmaVHX/Wc34gbcZNyLWKvzXw2+Y6lRqFEo CrSQ== X-Gm-Message-State: AOAM531Oe/YS/JvDGWcS38P305raw2dTN362zDjPOYfVKc6DvX5nW2B7 a4rFTmyDsEETnKVR1rSA/I8= X-Received: by 2002:a17:90a:5303:: with SMTP id x3mr4755040pjh.54.1610625461297; Thu, 14 Jan 2021 03:57:41 -0800 (PST) Received: from varodek.localdomain ([223.190.37.127]) by smtp.gmail.com with ESMTPSA id t4sm5107914pfe.212.2021.01.14.03.57.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Jan 2021 03:57:40 -0800 (PST) From: Vaibhav Gupta To: Bjorn Helgaas , Bjorn Helgaas , Bjorn Helgaas , Vaibhav Gupta , Jens Axboe , Joshua Morris , Philip Kelleher , Damien Le Moal Cc: Vaibhav Gupta , linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kernel-mentees@lists.linuxfoundation.org, Shuah Khan Subject: [PATCH v4 2/3] rsxx: use generic power management Date: Thu, 14 Jan 2021 17:24:22 +0530 Message-Id: <20210114115423.52414-3-vaibhavgupta40@gmail.com> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210114115423.52414-1-vaibhavgupta40@gmail.com> References: <20200722083335.50068-1-vaibhavgupta40@gmail.com> <20210114115423.52414-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 using legacy power management .suspen()/.resume() callbacks have to manage PCI states and device's PM states themselves. They also need to take care of standard configuration registers. Switch to generic power management framework using a single "struct dev_pm_ops" variable to take the unnecessary load from the driver. This also avoids the need for the driver to directly call most of the PCI helper functions and device power state control functions, as through the generic framework PCI Core takes care of the necessary operations, and drivers are required to do only device-specific jobs. Signed-off-by: Vaibhav Gupta --- drivers/block/rsxx/core.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/block/rsxx/core.c b/drivers/block/rsxx/core.c index 63f549889f87..937ad8a28e85 100644 --- a/drivers/block/rsxx/core.c +++ b/drivers/block/rsxx/core.c @@ -1032,12 +1032,15 @@ static void rsxx_pci_remove(struct pci_dev *dev) kfree(card); } -static int rsxx_pci_suspend(struct pci_dev *dev, pm_message_t state) +static int __maybe_unused rsxx_pci_suspend( + __attribute__((unused)) struct device *dev) { /* We don't support suspend at this time. */ return -ENOSYS; } +#define rsxx_pci_resume NULL + static void rsxx_pci_shutdown(struct pci_dev *dev) { struct rsxx_cardinfo *card = pci_get_drvdata(dev); @@ -1073,12 +1076,14 @@ static const struct pci_device_id rsxx_pci_ids[] = { MODULE_DEVICE_TABLE(pci, rsxx_pci_ids); +static SIMPLE_DEV_PM_OPS(rsxx_pci_pm_ops, rsxx_pci_suspend, rsxx_pci_resume); + static struct pci_driver rsxx_pci_driver = { .name = DRIVER_NAME, .id_table = rsxx_pci_ids, .probe = rsxx_pci_probe, .remove = rsxx_pci_remove, - .suspend = rsxx_pci_suspend, + .driver.pm = &rsxx_pci_pm_ops, .shutdown = rsxx_pci_shutdown, .err_handler = &rsxx_err_handler, }; -- 2.30.0