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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html