From patchwork Fri Aug 31 09:42:35 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aaron Lu X-Patchwork-Id: 180940 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 1225C2C03F5 for ; Fri, 31 Aug 2012 19:43:31 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752364Ab2HaJn3 (ORCPT ); Fri, 31 Aug 2012 05:43:29 -0400 Received: from mga02.intel.com ([134.134.136.20]:64686 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752264Ab2HaJnZ (ORCPT ); Fri, 31 Aug 2012 05:43:25 -0400 Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP; 31 Aug 2012 02:43:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.80,346,1344236400"; d="scan'208";a="194023822" Received: from aaronlu.sh.intel.com ([10.239.36.129]) by orsmga002.jf.intel.com with ESMTP; 31 Aug 2012 02:43:22 -0700 From: Aaron Lu To: Alan Stern , James Bottomley , Jeff Garzik Cc: linux-scsi@vger.kernel.org, linux-ide@vger.kernel.org, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, Aaron Lu , Aaron Lu Subject: [PATCH v5 7/7] libata: acpi: respect may_power_off flag Date: Fri, 31 Aug 2012 17:42:35 +0800 Message-Id: <1346406155-4768-8-git-send-email-aaron.lu@intel.com> X-Mailer: git-send-email 1.7.11.5 In-Reply-To: <1346406155-4768-1-git-send-email-aaron.lu@intel.com> References: <1346406155-4768-1-git-send-email-aaron.lu@intel.com> Sender: linux-ide-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ide@vger.kernel.org If user does not want the device being powered off when runtime suspended by setting may_power_off flag to 0, we will not choose D3 cold ACPI D-State for it. Signed-off-by: Aaron Lu --- drivers/ata/libata-acpi.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c index 6c8f89c..774180d 100644 --- a/drivers/ata/libata-acpi.c +++ b/drivers/ata/libata-acpi.c @@ -869,7 +869,9 @@ void ata_acpi_set_state(struct ata_port *ap, pm_message_t state) if (state.event != PM_EVENT_ON) { acpi_state = acpi_pm_device_sleep_state( - &dev->sdev->sdev_gendev, NULL, ACPI_STATE_D3); + &dev->sdev->sdev_gendev, NULL, + dev->sdev->may_power_off ? + ACPI_STATE_D3_COLD : ACPI_STATE_D3_HOT); if (acpi_state > 0) acpi_bus_set_power(handle, acpi_state); /* TBD: need to check if it's runtime pm request */