Re: [linux-pm] Re: [RFC] Implementation of SCSI dynamic power management

Pavel Machek
2008-01-08T21:57:58Z

> > > When all the devices under a host are suspended, the LLD is informed
> > > (via a new "autosuspend" method in the host template) so that it can
> >
> > That is most certainly a mistake.
>
> Why?
>
> > Is there a good reason to not modify
> > to extend suspend() to take an extra argument for the reason it is called?
>
> In fact suspend methods already do take an argument specifying the
> reason they were called. It wouldn't be hard to add a couple of extra
> PM_EVENT_* values for manual suspend and autosuspend. The problem is
> that resume methods don't take a corresponding argument.

Well, you could store the value in struct device or something.

There's other problem: if autosuspend is != NULL, you know device
supports autosuspend.

If you call existing suspend(PMSG_AUTOSUSPEND), and driver does not
support it, it will crash and burn.
Pavel

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html