All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aaron Lu <aaron.lu@intel.com>
To: "Wu, Jeff" <Jeff.Wu@amd.com>
Cc: Jeff Garzik <jgarzik@pobox.com>,
	James Bottomley <James.Bottomley@hansenpartnership.com>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	Alan Stern <stern@rowland.harvard.edu>, Tejun Heo <tj@kernel.org>,
	Aaron Lu <aaron.lwe@gmail.com>,
	"linux-ide@vger.kernel.org" <linux-ide@vger.kernel.org>,
	"linux-pm@vger.kernel.org" <linux-pm@vger.kernel.org>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>
Subject: Re: [PATCH v11 0/9] ZPODD Patches
Date: Wed, 09 Jan 2013 17:07:24 +0800	[thread overview]
Message-ID: <50ED334C.3060007@intel.com> (raw)
In-Reply-To: <5180B254989D2842B6BD8114CBC703AC0AEA7F@SCYBEXDAG03.amd.com>

On 01/09/2013 03:55 PM, Wu, Jeff wrote:
> 
> 
>> -----Original Message-----
>> From: linux-scsi-owner@vger.kernel.org [mailto:linux-scsi-
>> owner@vger.kernel.org] On Behalf Of Aaron Lu
>> Sent: Sunday, January 06, 2013 10:48 AM
>> To: Jeff Garzik; James Bottomley; Rafael J. Wysocki; Alan Stern; Tejun Heo
>> Cc: Aaron Lu; Wu, Jeff; linux-ide@vger.kernel.org; linux-pm@vger.kernel.org;
>> linux-scsi@vger.kernel.org; linux-acpi@vger.kernel.org; Aaron Lu
>> Subject: [PATCH v11 0/9] ZPODD Patches
>>
>> v11:
>> Introduce event_driven flag in scsi_device to silence the media event poll
>> after ODD is powered off; Removed ata layer PM QOS control, instead,
>> simply limit ACPI state to D3_HOT when choosing state; Make the power off
>> delay a module param named zpodd_poweroff_delay, defaults to 30
>> seconds.
>>
> 
> 1. Tray type ZPODD , test pass;
> 2. Slot type ZPODD , test pass;
> 
> Tested-by: Jeff Wu  <jeff.wu@amd.com>

Cool! Thanks a lot for your test.

-Aaron

> 
> 
>> v10:
>> Introduce PM_QOS_NO_POLL flag to skip calling disk's events_check callback;
>> Do not use zero power ready hint information from event poll; Check
>> attached device in port's runtime idle callback to decide if suspend is desired;
>> Address various comments from Tejun Heo.
>>
>> v9:
>> Build ZPODD as part of libata instead of another standalone module as it is
>> tightly related to other libata files.
>> Identify and init ZPODD during probe time instead of after SCSI device is
>> created as suggested by Tejun Heo.
>> Make use of pm qos flag to give ACPI hint when choosing ACPI state.
>> Expose qos flag to give user control of whether power off is allowed.
>>
>> This patchset used Rafael's pm-qos work:
>> git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git pm-qos
>>
>> v8:
>> This version is a redesign, it doesn't have much to do with previous versions.
>> The ZPODD implementation is done almost entirely in ATA layer now, except
>> 2 helper functions from SCSI sr driver to block disk events.
>>
>> The basic idea is that, when ata port is runtime suspended, it will check if the
>> ODD is ready to be powered off. And if yes, events is blocked and power
>> omitted; if not, ODD's power supply remains unchanged by keeping ACPI
>> state at D0.
>>
>> Some background knowledge about ZPODD is added below v1 history log.
>>
>> v7:
>> Re work of runtime pm of sr driver, based on ideas of Alan Stern and Oliver
>> Neukum.
>>
>> Jeff, due to the ready_to_power_off flag added, there is a small change in
>> [PATCH v7 6/6] libata: acpi: respect may_power_off flag, please check if I can
>> still get your ack, thanks.
>>
>> v6:
>> When user changes may_power_off flag through sysfs entry and if device is
>> already runtime suspended, resume resume it so that it can respect this flag
>> next time it is runtime suspended as suggested by Alan Stern.
>> Call scsi_autopm_get/put_device once in sr_check_events as suggested by
>> Alan Stern.
>>
>> v5:
>> Add may_power_off flag to scsi device.
>> Alan Stern suggested that I should not mess runtime suspend with runtime
>> power off, but the current zpodd implementation made it not easy to
>> seperate. So I re-wrote the zpodd implementation, the end result is, normal
>> ODD can also enter runtime suspended state, but their power won't be
>> removed.
>>
>> v4:
>> Rebase on top of Linus' tree, due to this, the problem of a missing flag in v3 is
>> gone; Add a new function scsi_autopm_put_device_autosuspend to first
>> mark last busy for the device and then put autosuspend it as suggested by
>> Oliver Neukum.
>> Typo fix as pointed by Sergei Shtylyov.
>> Check can_power_off flag before any runtime pm operations in sr.
>>
>> v3:
>> Rebase on top of scsi-misc tree;
>> Add the sr related patches previously in Jeff's libata tree; Re-organize the sr
>> patches.
>> A problem for now: for patch
>> scsi: sr: support zero power ODD(ZPODD)
>> I can't set a flag in libata-acpi.c since a related function is missing in scsi-misc
>> tree. Will fix this when 3.6-rc1 released.
>>
>> v2:
>> Bug fix for v1;
>> Use scsi_autopm_* in sr driver instead of pm_runtime_*;
>>
>> v1:
>> Here are some patches to make ZPODD easier to use for end users and a fix
>> for using ZPODD with system suspend.
>>
>> Some background knowledge about ZPODD:
>> ODD means Optical Disc Drive.
>> ZPODD means Zero Power ODD, it is a mechanism to place the ODD into zero
>> power state when the system is running at S0 system state without user's
>> awareness.
>> It achieved this by ACPI and SATA device attention pin. For power off, normal
>> ACPI control method is used to place the device into D3 cold ACPI device
>> state, aka. device power supply omitted. For power on, when user press the
>> eject button of a drawer type ODD or when user inserts an ODD into a slot
>> type ODD, the device attention pin will trigger. In the current x86
>> implementation, this pin will connect to a GPE, and the GPE will trigger an
>> ACPI interrupt. With our pre-registered ACPI notification code, the device
>> can be runtime resumed, and we place the device back to full power state by
>> setting its ACPI state to D0. The whole process is transparent to the end user.
>>
>> Aaron Lu (9):
>>   scsi: sr: support runtime pm
>>   libata: Add CONFIG_SATA_ZPODD
>>   libata: identify and init ZPODD devices
>>   libata: move acpi notification code to zpodd
>>   libata: check zero power ready status for ZPODD
>>   libata: handle power transition of ODD
>>   libata: expose pm qos flags for ata device
>>   libata: no poll when ODD is powered off
>>   libata: do not suspend port if normal ODD is attached
>>
>>  drivers/ata/Kconfig        |  13 +++
>>  drivers/ata/Makefile       |   1 +
>>  drivers/ata/libata-acpi.c  | 111 +++++-------------  drivers/ata/libata-core.c  |
>> 23 +++-
>>  drivers/ata/libata-eh.c    |  12 +-
>>  drivers/ata/libata-zpodd.c | 281
>> +++++++++++++++++++++++++++++++++++++++++++++
>>  drivers/ata/libata.h       |  27 +++++
>>  drivers/scsi/sr.c          |  36 +++++-
>>  include/linux/libata.h     |   3 +
>>  include/scsi/scsi_device.h |   1 +
>>  include/uapi/linux/cdrom.h |  34 ++++++
>>  11 files changed, 452 insertions(+), 90 deletions(-)  create mode 100644
>> drivers/ata/libata-zpodd.c
>>
>> --
>> 1.7.11.7
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the
>> body of a message to majordomo@vger.kernel.org More majordomo info at
>> http://vger.kernel.org/majordomo-info.html
> 
> 


      reply	other threads:[~2013-01-09  9:07 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-06  2:48 [PATCH v11 0/9] ZPODD Patches Aaron Lu
2013-01-06  2:48 ` [PATCH v11 1/9] scsi: sr: support runtime pm Aaron Lu
2013-01-06  2:48 ` [PATCH v11 2/9] libata: Add CONFIG_SATA_ZPODD Aaron Lu
2013-01-07 18:06   ` Tejun Heo
2013-01-06  2:48 ` [PATCH v11 3/9] libata: identify and init ZPODD devices Aaron Lu
2013-01-07 18:20   ` Tejun Heo
2013-01-08  9:07     ` Aaron Lu
2013-01-08 17:52       ` Tejun Heo
2013-01-09  3:20         ` Aaron Lu
2013-01-06  2:48 ` [PATCH v11 4/9] libata: move acpi notification code to zpodd Aaron Lu
2013-01-07 18:26   ` Tejun Heo
2013-01-06  2:48 ` [PATCH v11 5/9] libata: check zero power ready status for ZPODD Aaron Lu
2013-01-07 18:36   ` Tejun Heo
2013-01-08  9:09     ` Aaron Lu
2013-01-06  2:48 ` [PATCH v11 6/9] libata: handle power transition of ODD Aaron Lu
2013-01-07 18:42   ` Tejun Heo
2013-01-08  9:09     ` Aaron Lu
2013-01-06  2:48 ` [PATCH v11 7/9] libata: expose pm qos flags for ata device Aaron Lu
2013-01-07 18:43   ` Tejun Heo
2013-01-09  5:11     ` Aaron Lu
2013-01-06  2:48 ` [PATCH v11 8/9] libata: no poll when ODD is powered off Aaron Lu
2013-01-07 18:45   ` Tejun Heo
2013-01-06  2:48 ` [PATCH v11 9/9] libata: do not suspend port if normal ODD is attached Aaron Lu
2013-01-06 14:34   ` Sergei Shtylyov
2013-01-07  1:09     ` Aaron Lu
2013-01-07 18:49 ` [PATCH v11 0/9] ZPODD Patches Tejun Heo
2013-01-09  9:37   ` Aaron Lu
2013-01-09  7:55 ` Wu, Jeff
2013-01-09  9:07   ` Aaron Lu [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50ED334C.3060007@intel.com \
    --to=aaron.lu@intel.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=Jeff.Wu@amd.com \
    --cc=aaron.lwe@gmail.com \
    --cc=jgarzik@pobox.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=rjw@sisk.pl \
    --cc=stern@rowland.harvard.edu \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.