On Mon, Nov 12, 2012 at 11:13:03AM -0800, Tejun Heo wrote:
> Hello,
> 
> On Fri, Nov 09, 2012 at 02:51:58PM +0800, Aaron Lu wrote:
> > +/*
> > + * Check ODD's zero power ready status.
> > + *
> > + * This function is called during ATA port's suspend path,
> > + * when the port is not frozen yet, so that we can still make
> > + * some IO to the ODD to decide if it is zero power ready.
> > + *
> > + * The ODD is regarded as zero power ready when it is in zero
> > + * power ready state for some time(defined by POWEROFF_DELAY).
> > + */
> > +void zpodd_check_zpready(struct ata_device *dev)
> > +{
> > +   bool zp_ready;
> > +   unsigned long expires;
> > +   struct zpodd *zpodd = dev->private_data;
> > +
> > +   if (!zpodd->status_ready) {
> > +           zpodd->last_ready = 0;
> > +           return;
> > +   }
> > +
> > +   if (!zpodd->last_ready) {
> > +           zp_ready = zpready(dev);
> > +           if (zp_ready)
> > +                   zpodd->last_ready = jiffies;
> > +           return;
> > +   }
> > +
> > +   expires = zpodd->last_ready + msecs_to_jiffies(POWEROFF_DELAY);
> > +   if (time_before(jiffies, expires))
> > +           return;
> > +
> > +   zpodd->zp_ready = zpready(dev);
> > +   if (!zpodd->zp_ready)
> > +           zpodd->last_ready = 0;
> > +}
> 
> Hmmm... so, the "full" check only happens when autopm kicks in, right?

Yes, and unless the ODD is powered off, autopm can kick in every 2
seconds(together with the events poll).

> Is it really worth avoiding an extra TUR on autopm events?  That's not
> really a hot path.  It seems a bit over-engineered to me.

I'm not sure...But if issuing TUR every 2 seconds under some condition
is acceptable, I'll be happily removing the snoop thing and use TUR only.

Thanks,
Aaron

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to