All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aaron Lu <aaron.lu@intel.com>
To: Oliver Neukum <oliver@neukum.org>
Cc: Alan Stern <stern@rowland.harvard.edu>,
	Aaron Lu <aaron.lwe@gmail.com>,
	James Bottomley <James.Bottomley@hansenpartnership.com>,
	Jeff Garzik <jgarzik@pobox.com>,
	linux-scsi@vger.kernel.org, linux-ide@vger.kernel.org,
	linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org
Subject: Re: [PATCH v6 1/7] scsi: sr: support runtime pm for ODD
Date: Tue, 11 Sep 2012 19:11:08 +0800	[thread overview]
Message-ID: <20120911111107.GA20361@mint-spring.sh.intel.com> (raw)
In-Reply-To: <1545884.X9DCxzsAFq@linux-lqwf.site>

On Tue, Sep 11, 2012 at 11:30:35AM +0200, Oliver Neukum wrote:
> On Tuesday 11 September 2012 17:24:13 Aaron Lu wrote:
> > On Tue, Sep 11, 2012 at 10:55:44AM +0200, Oliver Neukum wrote:
> > > On Tuesday 11 September 2012 14:44:30 Aaron Lu wrote:
> > > > On Mon, Sep 10, 2012 at 12:45:51PM +0200, Oliver Neukum wrote:
> > > > > On Monday 10 September 2012 17:16:22 Aaron Lu wrote:
> > > > > 
> > > > > > +static int sr_resume(struct device *dev)
> > > > > > +{
> > > > > > +       struct scsi_cd *cd;
> > > > > > +       struct scsi_sense_hdr sshdr;
> > > > > > +
> > > > > > +       cd = dev_get_drvdata(dev);
> > > > > > +
> > > > > > +       if (!cd->device->powered_off)
> > > > > > +               return 0;
> > > > > > +
> > > > > > +       /* get the disk ready */
> > > > > > +       scsi_test_unit_ready(cd->device, SR_TIMEOUT, MAX_RETRIES, &sshdr);
> > > > > > +
> > > > > > +       /* if user wakes up the ODD, eject the tray */
> > > > > > +       if (cd->device->need_eject) {
> > > > > > +               cd->device->need_eject = 0;
> > > > > > +               if (!(cd->cdi.mask & CDC_CLOSE_TRAY))
> > > > > > +                       sr_tray_move(&cd->cdi, 1);
> > > > > 
> > > > > 1. Even if the door is locked?
> > > > 
> > > > This piece of code of sr_resume is intended for ZPODD devices, for
> > > > normal devices it will simply return as the powered_off flag will never
> > > > be set for them.
> > > > 
> > > > And for ZPODD devices, the door shouldn't be in locked state here since
> > > > for it to enter power off state, "no medium inside" has to be satisfied
> > > 
> > > This is true only if the device is autosuspended. But sr_resume()
> > > will also be called if the whole system was suspended.
> > 
> > You mean when system resumes, right?
> 
> Yes, but because the whole system had been suspended.
> In that case you can have a locked door.

By locked, do you mean the door is closed or the door is locked by the
sr_lock_door function with param lock set to 1?

> 
> > > What happens if the user presses the door button on the drive
> > > while the system was suspended?
> > 
> > The drive does not have the capability to wake up the system from S3, so
> > nothing happens.
> 
> You are assuming that the system is resumed because the door button is pressed.

No, as I said, pressing the eject button can't wake up a suspended
system. The whole idea of ZPODD is to put the ODD into powered off state
while the system is at S0.

> That need not be the case. What happens if the door button is pressed while
> the system is resuming?

In that case, if the hardware logic is ready, an ACPI event will fire
and the device will be runtime resumed; if the hardware logic is not
ready yet due to the system is resuming, nothing happens.

Thanks,
Aaron

  reply	other threads:[~2012-09-11 11:11 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-04 14:24 [PATCH v6 0/7] ZPODD patches Aaron Lu
2012-09-04 14:24 ` [PATCH v6 1/7] scsi: sr: support runtime pm for ODD Aaron Lu
2012-09-04 15:57   ` Oliver Neukum
2012-09-04 17:59     ` Alan Stern
2012-09-04 18:47       ` Oliver Neukum
2012-09-05 15:22         ` Aaron Lu
2012-09-05 16:08           ` Alan Stern
2012-09-05 22:49             ` Aaron Lu
2012-09-06 15:06               ` Alan Stern
2012-09-06 15:25                 ` Oliver Neukum
2012-09-06 17:08                   ` Alan Stern
2012-09-06 18:06                     ` Oliver Neukum
2012-09-06 18:50                       ` Alan Stern
2012-09-10  9:16                         ` Aaron Lu
2012-09-10 10:45                           ` Oliver Neukum
2012-09-11  6:44                             ` Aaron Lu
2012-09-11  8:55                               ` Oliver Neukum
2012-09-11  9:24                                 ` Aaron Lu
2012-09-11  9:30                                   ` Oliver Neukum
2012-09-11 11:11                                     ` Aaron Lu [this message]
2012-09-11 12:10                                       ` Oliver Neukum
2012-09-11 12:31                                         ` Aaron Lu
2012-09-11 12:35                                           ` Oliver Neukum
2012-09-11 12:13                                     ` Aaron Lu
2012-09-07 14:53                 ` Aaron Lu
2012-09-07 15:41                   ` Alan Stern
2012-09-05 18:06           ` Oliver Neukum
2012-09-06  5:55             ` Aaron Lu
2012-09-06  5:17     ` Aaron Lu
2012-09-04 14:24 ` [PATCH v6 2/7] block: genhd: export disk_(un)block_events Aaron Lu
2012-09-04 14:24 ` [PATCH v6 3/7] scsi: sr: block events checking when suspended for zpodd Aaron Lu
2012-09-04 14:24 ` [PATCH v6 4/7] libata: acpi: set can_power_off for both ODD and HD Aaron Lu
2012-09-07  2:37   ` Jeff Garzik
2012-09-04 14:24 ` [PATCH v6 5/7] scsi: pm: add may_power_off flag Aaron Lu
2012-09-04 16:01   ` Oliver Neukum
2012-09-06  1:52     ` Aaron Lu
2012-09-04 14:24 ` [PATCH v6 6/7] scsi: sr: use may_power_off Aaron Lu
2012-09-04 14:24 ` [PATCH v6 7/7] libata: acpi: respect may_power_off flag Aaron Lu
2012-09-07  2:38   ` Jeff Garzik
2012-09-13  2:42 ` [PATCH v6 0/7] ZPODD patches Jack Wang
2012-09-13  3:20   ` Aaron Lu
2012-09-13  8:15     ` Jack Wang
2012-09-13  8:30       ` Aaron Lu
2012-09-13  8:39         ` Jack Wang
2012-09-13  8:56           ` Aaron Lu
2012-09-13  9:01             ` James Bottomley
2012-09-13  9:12             ` Jack Wang
2012-09-13  9:19               ` [PATCH " Aaron Lu

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=20120911111107.GA20361@mint-spring.sh.intel.com \
    --to=aaron.lu@intel.com \
    --cc=James.Bottomley@hansenpartnership.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=oliver@neukum.org \
    --cc=stern@rowland.harvard.edu \
    /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.