Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752303AbbLIIXP (ORCPT ); Wed, 9 Dec 2015 03:23:15 -0500 Received: from mail-bl2on0056.outbound.protection.outlook.com ([65.55.169.56]:13831 "EHLO na01-bl2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751281AbbLIIXM (ORCPT ); Wed, 9 Dec 2015 03:23:12 -0500 Authentication-Results: spf=none (sender IP is 165.204.84.222) smtp.mailfrom=amd.com; gmail.com; dkim=none (message not signed) header.d=none;gmail.com; dmarc=permerror action=none header.from=amd.com; X-WSS-ID: 0NZ30MI-08-IN4-02 X-M-MSG: Message-ID: <1449649050.2175.59.camel@kxue-X58A-UD3R> Subject: [PATCH V2] ACPI: Support D3 COLD device in old BIOS for ZPODD From: Ken Xue To: , , CC: , , , Andy Shevchenko , , , , Date: Wed, 9 Dec 2015 16:17:30 +0800 Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:165.204.84.222;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(428002)(209900001)(199003)(189002)(5001770100001)(47776003)(92566002)(105586002)(586003)(230700001)(5820100001)(5008740100001)(97736004)(86362001)(1220700001)(1096002)(33646002)(101416001)(50466002)(189998001)(11100500001)(33716001)(15395725005)(2201001)(50986999)(106466001)(229853001)(23676002)(575784001)(87936001)(19580395003)(19580405001)(15975445007)(103116003)(50226001)(77096005)(99106002)(3940600001)(6606295002);DIR:OUT;SFP:1101;SCL:1;SRVR:BN4PR12MB0849;H:atltwp02.amd.com;FPR:;SPF:None;PTR:InfoDomainNonexistent;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0849;2:lmvx56mlHBhZin9qEzG18WJkWIT734g7jvEJWquPm/wgI5kKD7AO5kGyqrCt6zi0xTEguXj9cyDdWAyjDvusAGrLQuTmKvYDr1hgIAbNqzr9LNaQjx+cMgbZwpDY094RJLLSTHIi0Eh7leyQCC9WpA==;3:1hyfVMExT7IrtycUFlgFAgLJ5IP7DTzzCcpzcP5q9UwoynDwIGDAWwGChEbiYQeey5tnKi2ffK5rfAkYcYVIqChWJFqBlKl7k2KFoB3/F7yFtbsxep8ozyzSxakVjODB6IqnzRVfLYS3S9LuLXr++OMcnwePnMx5kicw2tj4I/IvKFtQVelW3I9kba9fbJQUCmQcapgDUgehJaSDOs0nqjJE4XzGCmglzU1Qm6LfPnI=;25:tOJ2n+hbpPG/gFRWfHQ084cTxvrqRYQP/XY0zj0nXvZZRfP1MZGS1EU01c7mddoGRA5idhkyBzb3rwp2tcoSiRyVe9v8q5sQXCmowyLWonKZIzPErkXB8P5pOQqCF+6D6QS45c8xwPgi694QkYKdfwZptPg1g1CdJeQA4r6NGUmarKBZAHpw+RsjLzoAWY/8TPJVF4vr7nS3EwcDx3IHOyU8r1wkPbekKs0BsXX7ndXP1/mV66GBTN3tINOQrTW7 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN4PR12MB0849; X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0849;20:Y/oi9nI646AM7Pas/v9OU5p9FcLWzZwOUhi+hfhUchnfD1iUQpJkpisGmWrNuSc8L/cKWVcj9slKkQyVHSamlp0UHrkWCHcMP3YxKWSBaw18WlegbgHGDeeCt07LUxMIYNipxGc6NTaaNspSG3Yqu5vqP7yNBKBVoB1eYZ0L0ZXzKCfSKaMXUSGSLFLSU7pafzvmlW4lLk49ID28pQdTPx5gksfZ8HJdbu566hf0GeW5zGa7HJ8i8M3ot2HMhWsU8BJadGehUErcLGRuWrxsZScASxqS200E7zEt7s5bDg0DgvCemISdhq9LRFe/2CfZq0ujnwv5EJpwfqcZeAoA6QjgCo1TSaIBvdwP+PjWZK5MwcZv3xPdvizND9AMVoz+rzgn4zYkEVjiKum19tJj9S9/7mwxmWOfawOxeL+guRzCCGp2Ly2if6wA0whpauL9CJ/SYfzGt68LS8k7LiEOmhnntO/hHFfTFsNiid2+s3nBTZVowskCqjD+d/ZaXF9Q;4:knP0w7zbxKY12+L6lOn7pMoDIyfKjNOEBCk4IpBdUGR+3lejwjBtFLdZ19oyh36q5n046tJXI15KAoQx2mzb8QotHELShuEDQX0uooirzTnCpry5CEqHtzs/LDhUoF7YUspSmLYQIWR6/ltTdbrZcuDPih3MhFgYR4bBZ3m46v3G5tjTtOBenQWHi8Mo45sKUtUR/m5bh+l0t8jHg0WeI7LQ09kqtLZf1PONcwjyVen+5gvigj9p5zaciO1OmTNnrYrwiqXAmU53MIfdzi+nveHxgvFbTi2Kj4M+RETmPQuE5C9iWCHB5oypkI0m+ZNPLMGexIF8iTRi6S8I/a5IGF2oIJK956PnJoVWYlkIpIAAdUVIb8wYJjA+z/JlZFK8ieLo80DDtSg9EUxE+Py9nryqMO+y4DWHuaxbRTuvkGM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(10201501046)(3002001);SRVR:BN4PR12MB0849;BCL:0;PCL:0;RULEID:;SRVR:BN4PR12MB0849; X-Forefront-PRVS: 0785459C39 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjRQUjEyTUIwODQ5OzIzOnZrQnAzQWFaR0k1MStjanpYNlhoVW5tT2ZK?= =?utf-8?B?aG5zYmRJR1JmQ0oyMDlPZE5OYTRBQ2FLdUdpSXVvc1hPbFhyM3FuYW13ZEZi?= =?utf-8?B?b0p0bDR2L082c25uN1FZeFV0Q05DUmtwZ3NmVFIwQjhxQzBvdmdSNUErd29Y?= =?utf-8?B?RGlQUFo2a2FONjZ4Q2VDSlg3N3NNNGNMS0lnVG5oa0hMc1U1ajUxaGg5aXc3?= =?utf-8?B?OHhkMnA4cC82YXFCcWhLZTd0ZzFVUVdFQTFzMHdJNmNxZG5CcVFScFRFWk42?= =?utf-8?B?NXZIWkZjL3ZwanRabnlucDlXMWlsVjNLemJFZUVFVkRXSVc4OHoyMW1yalcx?= =?utf-8?B?bHFGaVdFdWdhSng0cWZXUnJIRmUrVE9KS2RDTzUvWHVJQVF1N0ppTUZXbjE3?= =?utf-8?B?TW9kK09WeEJ5NTIxeTM0T3lOMTRQcUdJak1XRHlBZEh0VnlEd3Q4OHp1cmJU?= =?utf-8?B?Z24zeGF4N0RXZTJBTHhLVUtUM1JBRC9vem0rY1hMSS9kYlpQbEVlY2tUTE1x?= =?utf-8?B?d2JMRzgxRUNYV0d6S28xelpkd2dBdkpZRzNRaElhS3haZjNjQzNuSW43ODFt?= =?utf-8?B?TVhETjQ2bDhDamJqZEdnNUNITzE1K2FrY1FzN2VYc09YTFE3c2hMQVRqR2RT?= =?utf-8?B?MDcveFNPditxSG5NclMyZkVreE53U3hrT0VBY01BekxZYUpCTi9pbm5GN2xC?= =?utf-8?B?OC9DYnlHUm5GWFRybTUwMTB0NUNDdUl2dGpzKzlHVTAxdEUwc1pCRDZGcUFo?= =?utf-8?B?RjVVekV4eUw2ZU9CM3ZzSEUzZml6Y0hwVjloZFBaTUtFOVZOWlNYamxNUkho?= =?utf-8?B?YXRlOUhESjh5NTY1OHNUUWU5cHFsb01xQTdEcWhRMVpvM2dYdGJ4Rm9VTG1z?= =?utf-8?B?R3lXanZYNXV3TGlia253ZnlJam5QWlVQRTZuNU83Vk9GN1l5ZGJ4NmU0WW9y?= =?utf-8?B?QytYQjJHSk9QSkNTMm9SRG9rZjl4N0oxNS81NGg4L3FJbGVpK1ZSRU40R0xx?= =?utf-8?B?NzBmTmNLYzVHTzFFYmJFV2NndEZacHZRekd0WjlZYk1QQkdTMndCVDJYUDJN?= =?utf-8?B?bzgzQjRRaUxPT2tzMmFKQmozb0dPNWMwYTQxZHNVeTYyTkd2OW1mMVhzMVZq?= =?utf-8?B?U0xUTis5MGZ3R0NQdFRxWlNSS0p6b1NqUjFzS0FEUmpiblV5N21JWUtOWXBq?= =?utf-8?B?ZUJRMy9EMU5DUVQ2QlFpY1N3Q0hpbGRsclpkdUNWOTY2VTJ4ckJralhHalBQ?= =?utf-8?B?Q0F0dGVPRUhBWFJsME1OcTYyMHRFTUc4SzhNR09IM2JBdHpwbkVRbWxyTkxL?= =?utf-8?B?MnhBVm12L1dsd2lNRlpkOTJPZEUxRFhqSTkzb0JjazU2TGh1VEg0NU5scWRJ?= =?utf-8?B?ZEJCR1MrOUNqNnRDKzdIUStUcmtTdVJZZFk5SkhweEo3R1JsQTlRamlCREl4?= =?utf-8?B?YXh6ZU56clhad0FVRUFwZTdWanBIU2lLWEVUWFE5V1lZRlBoRlBENGZJeCtI?= =?utf-8?B?U0hSZz09?= X-Microsoft-Exchange-Diagnostics: 1;BN4PR12MB0849;5:yxStV4llFsQySp/3RTAVeBva6UAhtrJfYV09lsQ6T7j9DoxqBg5WhWGFrgIcEaeuVq6CEZCNfNv0anu8gkt87+72T9T1WJPJM5pytnTrLMjFO7ThIDX/wUkVUO9VEqS76rNsZMGrkMKeYgTFgxu8oA==;24:NddI5utLirrF24dbIbFDNfE/XLuq1U/q/RmJBQUbdITwfi7TiU9DCqwXSVxEnFcCHkyhTAqDWrrI0xxVz0xnnlNq3MPyJDiM+4Yhew7xcUA=;20:ne70KYnVBk29KFxl5px1G6cuBBesFaO6F/RS+Ye1atY9t1pcZWgn/UkzCIz/2RFBQ90SR0/sCLDetlwQrAgsWaFsLkLmcPLYU4HThJTc/23tk16V+zLLQnDpjPNLzUcGJ10Wfu78s2ls4yAx+4KkAIoEVO25dBhMAj2l3+Ew8BC9ryRi5G7J3HPHpiGkjOIM/gegdK6B1lUiloLYuOk48sjetf55r3FAiHG4xL9XTip2sTN/wZjtHKCoudivPglN SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Dec 2015 08:23:09.2607 (UTC) X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d;Ip=[165.204.84.222];Helo=[atltwp02.amd.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR12MB0849 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1545 Lines: 45 D3cold is only regarded as valid if the "_PR3" object is present for the given device after the commit 20dacb71ad28 ("ACPI/PM: Rework device power management to follow ACPI 6"). But some old BIOS only defined "_PS3" for the D3COLD device, such as ZPODD device. And old kernel also believes the device with "_PS3" is a D3COLD device. So, add some logics for supporting D3 COLD device with old BIOS which is compatible with earlier ACPI spec and kernel behavior. Reference: http://marc.info/?l=linux-acpi&m=144946938709759&w=2 Signed-off-by: Ken Xue Reported-and-tested-by: Gang Long --- include/acpi/acpi_bus.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/acpi/acpi_bus.h b/include/acpi/acpi_bus.h index ad0a5ff..9894b75 100644 --- a/include/acpi/acpi_bus.h +++ b/include/acpi/acpi_bus.h @@ -631,7 +631,9 @@ static inline bool acpi_device_can_wakeup(struct acpi_device *adev) static inline bool acpi_device_can_poweroff(struct acpi_device *adev) { - return adev->power.states[ACPI_STATE_D3_COLD].flags.valid; + return adev->power.states[ACPI_STATE_D3_COLD].flags.valid || + ((acpi_gbl_FADT.header.revision < 6) && + adev->power.states[ACPI_STATE_D3_HOT].flags.explicit_set); } #else /* CONFIG_ACPI */ -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/