From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751070AbdEaLxE (ORCPT ); Wed, 31 May 2017 07:53:04 -0400 Received: from mail-co1nam03on0057.outbound.protection.outlook.com ([104.47.40.57]:21088 "EHLO NAM03-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751009AbdEaLxB (ORCPT ); Wed, 31 May 2017 07:53:01 -0400 Authentication-Results: google.com; dkim=none (message not signed) header.d=none;google.com; dmarc=none action=none header.from=caviumnetworks.com; From: Geetha sowjanya To: bhelgaas@google.com, linux-pci@vger.kernel.org Cc: linux-kernel@vger.kernel.org, jcm@redhat.com, sgoutham@cavium.com, geethasowjanya.akula@gmail.com, robert.richter@cavium.com, linux-arm-kernel@lists.infradead.org, Geetha sowjanya Subject: [PATCH] PCI/PM: Set D3 power state only if the end device supports it. Date: Wed, 31 May 2017 17:03:32 +0530 Message-Id: <1496230412-19028-1-git-send-email-gakula@caviumnetworks.com> X-Mailer: git-send-email 1.7.1 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [14.140.2.178] X-ClientProxiedBy: PN1PR01CA0100.INDPRD01.PROD.OUTLOOK.COM (10.174.144.16) To CY1PR0701MB2025.namprd07.prod.outlook.com (10.163.142.12) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY1PR0701MB2025: X-MS-Office365-Filtering-Correlation-Id: 2eb757f1-6054-4dbf-4ab1-08d4a81b958f X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:CY1PR0701MB2025; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB2025;3:OaJS7euPeb9GVsctjqEPrxGRf5Dna1gAYhd+T02Vzn6yu6sPnZyxk69j8wlnwSrVZzzv92y+2Q1WYOzIzmd+xsHEmJbfiPdoEefkmnhC9/WT0SFlGH/H/m7F/uXKgZdGhk+fcJlDsLTRjmdkL8GZv0d5UWKAuy57yWmYIJ9kiaaii5ux/DyEUcMF+FejmkHT+NOBXT3IZzsQlSbbZZBJd9WXQN9vaQmkgXGBphPrZCU/RXeIj9of6utvGyaqNtGVpynR3vw77v33/K3agFOuMLg8DTcXDffaQLdEP2uNgeWO9eV6XpgKn4ZiIjgu/zIcVTLQiJoQnSjFXzCTdVREzQ==;25:pebofcxnpp3iz2D00591eT8MlpDHav1e6JPC4Zb9b7Ul2jA+XkNadcsnoyO1tbIGoJnjpctGCgu7AeKasYNYYIaR03BXrJUe/TfwZNpRY/URrKrzKKBybQRO4qLzuYByPqD44Nzh29swjFp5ORVN5QShvv/9pLwn1CuZirc3WJwOl8x6IKd6fEhkOwflLtVK2n0YMKquOqVrfXMPuFO2AqYrLfx8Eluw89vjpg250v/Qaua7/sF/U6XkJ++O77MnOJhYJSOFQhGxoUfZkz5mkUR2Wphbwie2ftUE45V9un2HVXIjeXYvEXxZDH8+n1jTUDCmvx1aB85SaDQ6Oz+z5t+lHnorAarjoFXinjvDUgi+7GFMybqlXFTjFoOYtpqQxZx4tmcylFRbmB2YqMQIv8Zt3w3SkrsJD8VcZycy/1wChDrNpEdDVAvWQn7SWCXa8rBvjfU/bN8XlRv/d7LR52hpjo5AYBhvvqwLrksILzs= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB2025;31:dwxAYL7we9A4lWBQ9FsWI3wyQypHsdzBcLELaDSdThDl/X8wAGG4rJR/3nmAf2thc5p5jOKR9TZ+qTRD6KG93wPR7q+EP27yO8BvQqqYPHy/ZNTlRGsgjRXzRAdVwoL4xVQsjHPTR13WuReqjEHg/tGXCbC6JKJC2LqjJzaBEI2WBezOsJhWhtfWNRHs08SYqxDXUgbSLptwvVpXG3gWLVcKH0XvJThVm+xXj5COjwg=;20:JMq0mk92REt303MDdG4zGkUq4SwLuw+EpOuKl88H5ayLDuB3nrK8kyTiihe9lJ9IyiDraWK6U5G/hjBYkUU4dSw+8zCippzznXvFculDXbu+TLng1DXgurjR3ZifEOkia+pApXqbCNR0no8S2BjKObvcQv7dVCI4CX7/RS2TPD5w1D5z7Mmdsa5y1BjdEEN2/Sf0dqhacAh9OdqQ0jX5CDTFAPVODC8G7gLRdXx54DEg51hT3395rHJJKHquxU4rqe3uNzJxBRa/4Uv3hRiBpJF2z/XVZu2GM31ZolIOijJb5rbtDldkOqmXb2VivYsIkK0f2FgzDXnUI3TwUd092T00vN/4HVvCKQ1EMNyJTHyieXJoMxnGnMGs4cXPrOafS1mCFR2596OpMgBMxUKeyh3Dnu9V+7W4/4pNMmrP3YYG+F/lYYwF8CUONfuJrnIq0uz9Xv9x2cQ0ImuoOAZUvVGlMrgfyuDrdZAF1Ekw7q16EwdRs5dJqpe/b6iPzQ0NhpUVPT+tw63qgNOlqmPbff/sMUn0erikRumJgybJzr0d9fErt87YWLnP1jf+Verinjrr/BFccZgmBrkTVeRd48sTcyc9f5nt723Y5XjIaAU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(3002001)(93006095)(10201501046)(6041248)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123555025)(20161123562025)(20161123564025)(6072148);SRVR:CY1PR0701MB2025;BCL:0;PCL:0;RULEID:;SRVR:CY1PR0701MB2025; X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB2025;4:I43Ex8yXYX+zlaETwboskKn6ANx8r3Pls739//JNW6DPB8maaGW6p08e+rQwNBDy3VyA98IkZKGN2mo3ZYqvg+uoYeh4b+kw/5qrN0wbdnblmqt0aWZ4wnAJpx+3rzkkj607UYrEV8KVNGg+BoJr5MZdhWDB2u0aED1jhIG3GpK7JmXJzWBn5rNALqMaCE3nMdtNYKXw0TXqdErq/0D08QtK4FDZVozlh77iVqqR/Q1H/IWT0PQEkTby/R1PTvXAF62kwRODejpkIimH6Dz8wHAq+fC5v7jL5VyuX97AeqBTpqzFx32H5rXmZHquw1IOBiCNGp/iQ8C6AK8ryY6x45pQYJ3ROM79lAI6Cg+CPuOecDJBEEh8YfFO+nvNFbGqCkgQavw7L91ZyL+ALT+rXW7e/WobVH3HTq/gcCseW+0TyLVjYMag5Ng+v1aOzDRNx0QRLtPZVyNJjFOLIiVCaqVxx92smCV61zm8dq8lbNBQ+xvLZ4n/k+0QFlSDu28N65k4pQPn0FdLt/xJIW/1ug0xD1foM4bemmKMKNs4Tndw9gNT2hW3Kp9udnQ+wG+kMncuaRE5KzORaVrTV6GAfD+zd01TZNlqVh5fiur2Mr+Q3hE89wUhs/Qimza2K9hbIHuMY/MQJXEBo4bvcjafFEup+kuo4YhOtrlqa55KqWsQhFInbQgVEZRoTlEFAivLKao60P3eQVt5doUxwfBw9OFPj7JF6NrLNfYt/dy8K8Q9HBfiNm6EAZvM5rkPdA52p9PrQ0AS4D5JdXfZ9zSBnw== X-Forefront-PRVS: 0324C2C0E2 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6069001)(6009001)(39850400002)(39450400003)(39410400002)(39840400002)(39400400002)(8676002)(53936002)(6506006)(72206003)(6512007)(47776003)(66066001)(2906002)(478600001)(81166006)(38730400002)(107886003)(305945005)(110136004)(7736002)(50986999)(6486002)(50466002)(33646002)(5660300001)(6116002)(50226002)(48376002)(5009440100003)(3846002)(5003940100001)(42882006)(4326008)(6666003)(25786009)(189998001)(36756003)(42186005)(110426004)(42262002);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR0701MB2025;H:localhost.localdomain;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;CY1PR0701MB2025;23:h+Ib1QB2jWlR/wpjWhqgjFjOP7e7nCOwyJrS6H6?= =?us-ascii?Q?JMkY9kFp4E0HYYrsBqr5YtKxzSitShvXIB+Rz1bFIMOyzYa2yKogMOGbqKtv?= =?us-ascii?Q?uLBbX7dctiR0RMYlypdngFFa6Yf8EEeMK6G/2sdOm9bP0uNEdWfYScZ6KOPJ?= =?us-ascii?Q?EjYoTR6mftVxKZ/TYhN/Qpx9u/9oL2e5DnpV8OeW4mbX4JYakTsY1hySnR3J?= =?us-ascii?Q?OLpJQivnuJm9JWr+8E4S6EblQlcvYbOhDgehzng7zMcfWqpdJbo4hhcuHDmi?= =?us-ascii?Q?E3/5eixz/lfvSTbrmdI4kw6O7I3+Keh/UTKPkg9gkoX5j254Dff2moeelOG8?= =?us-ascii?Q?8jTM41GMR7WsDLknbEFaiYAW+Yuc2ET7vFP0ODsI0ksABv+9PftEkaVKV+Dp?= =?us-ascii?Q?+3+Fzpjjwm/7QmDaeBGHIVBD9tCYlhZfVgEpzPKcLJJ91CjcMKEHqrKlm/GC?= =?us-ascii?Q?dvY6cl37+2ZCo+fCAKodZAXqDuFWsWOrgQ0ggYxsFYDr89InHpAO8/0lLGI+?= =?us-ascii?Q?aPp34RwVvrIA2ummvAa5cVXtsHdd5ZFnuKlgYLSXyR60Wnj4l0/mnVibBJZg?= =?us-ascii?Q?O19zSOBul6NMpUkb+DXehmtsP8pwJnt7XR49ra+vSgDyBlUB+1Ire6Gm17/C?= =?us-ascii?Q?HtbDpOWHTIbvbKDuwebYVTzpEQTEewuT1L5mzrRAiCkBIPlOBgmNK0m+S+Nz?= =?us-ascii?Q?7w7tAoe6d+Bg1GkMJ/tg1pcUKeyIfBguO0pTlOWg299/yuvp0HU6wYSJSIGN?= =?us-ascii?Q?gWeTL6ETvBXnEWUpDtU3ip9RCFxKWHx7DsTy4uH0/7SLXU1CDfMn3emyx8uu?= =?us-ascii?Q?72U5V67MlwyoAkgfDhBUA4sl0/2YcjDUmt2RmJxyGXu9nQ2zneA01FvOdjNw?= =?us-ascii?Q?I2KwszHIXbtuplx1yD/Cpk2MHFwy/02FMcz/2cAhwYhqQ78PXuZcJfcB5V7n?= =?us-ascii?Q?hKFDAK6dBNwqlaP62ZCrPFEUltPzSdRHnR+R7DEGaUeXH/vGrghOYChweaGs?= =?us-ascii?Q?vHEaqi/cjhxMKNv6ZMGEP197+cb5xaaue1mVaZVXtfcC0/aexiBI2N3NpqaW?= =?us-ascii?Q?zNe8l5vnjwzw26+n/dB7kmakHvBm9I0LqkpHOL2KPuzswOZwguw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB2025;6:qoueKHmbm58Kr7a7ZXuZ443PSxkhG9sZC5RD5y4fhWu4poMDKTx3FhTc85fDGVyZxCeVWe5G5fs2Jipr2Lus5NJNqyIEc+5HoL0f/PC/of7yl6v2qZ8KqSaQjPYUFAMcTEoLgqoTgabTTJAZIv812g886A6HlxQHWiQB4tZnUCEkCuZjCa/z2wHOKJX5h870na8RuuHybwV/RvVH6cMPKG0vFdjgLy2JGzyA7cX0S4H7BGtP7t6Oh1G7a0lagM2JsKAx7S2fRn+DEoiLICpF2As6B2tClsiVg5xhUhwRoGCUoJamSOLTWCskA0fbIG/NFJQhF79QZoH/UMj4elFSl0fJkB/J7arjjpqUwmiFu3Owf4KuMBMDC9+IsKMys4bm4yuqvgyOqNfVcnDdU1cyqOKY3ayHakEWT0ABpjJGgCrN0hM9xXMdquQYyqTTrnFwbDAPnQSstNClNdoYkgf571HCI0wC4UqU8q9tkCkMusvBPOmyOUpIQDvxNkbEJy/XBhOEJ/0SUy5IfqrYzdY7jA==;5:gjvtP9SHDDDA7860H6Mco7yuQ5EiE5Ldu/07v824TgoTG1//UJaHdcIG6UNXVipmW19rPFz8D6n/b+wKp+wWfqoBDY5TfANdxbh3QcEsj+7mhrSOcz2Ef9suv6lpdnsPYcKkAiRaSQ1v1kbJaRLLVQ==;24:oF2+A6lUixJJZwuwtg+sAyv+B0JQXw1x9zQ3fw2qxvj1/hPGox4+jLjSsd++vv/57eHGZGjZhloqgnLIYG4IEqEAoR/AjpRIcdrqqo6Yego= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;CY1PR0701MB2025;7:1RrUQVzjb/1FPV67ih6v7J4JUmvTF3YwCSCF//YjNMrSTwfQnp4i8qo0GIlnHXWvwhkVQNa6QFTd5S+GOmDA6HN/IrAXSHEH9+tYJ2XyPUrC7qdinq+ZCY0dDO7IokUi/hNDbN8Ac0ty5c11Oj9TFKnfzfiypkSMuprj0u65qBBaKnrPtRxfuJ0tHKP2CT1z5bRxth6S2zhT9qyjtw+D2Cx1GjoU+yCIl3BERILxXY/7A+g6oNPVfxvRgf2aM7Ok9TQvPUT0Ic8vNsdefFAH5dt95Z+kn/rgcbY19E5V6CDdgRufaBVQCX2xE8Y9qNc2J+CMioqVr8FM3fUbW0jQaQ== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 May 2017 11:52:56.0673 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0701MB2025 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Pci driver doesn't check if the device supports D3hot/D3cold power states while setting these power states. The device that doesn't support these states will fail when a driver like vfio try to do D0->D3 power transition. This patch adds a check that allows to set D3 power state only for the supported devices. Signed-off-by: Geetha sowjanya --- drivers/pci/pci.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 563901c..cadd046 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -661,7 +661,8 @@ static int pci_raw_set_power_state(struct pci_dev *dev, pci_power_t state) /* check if this device supports the desired state */ if ((state == PCI_D1 && !dev->d1_support) - || (state == PCI_D2 && !dev->d2_support)) + || (state == PCI_D2 && !dev->d2_support) + || (state == PCI_D3hot && !pci_pme_capable(dev, state))) return -EIO; pci_read_config_word(dev, dev->pm_cap + PCI_PM_CTRL, &pmcsr); -- 1.7.1