On Fri, 2007-04-27 at 10:34 -0400, Alan Stern wrote: > For the sake of argument, let's call the stages of STD and STR by these > names (also noted are the current PSMG values): > > Suspend to disk: > "prepare to create snapshot" (= FREEZE) > "continue after snapshot" (= RESUME) > > Resume from disk: > "prepare to restore snapshot" (= PRETHAW) > "continue after restore" (= RESUME) > > Suspend to RAM: > "suspend" (= SUSPEND) > "resume" (= RESUME) > > The real reason for adding PRETHAW was that drivers couldn't distinguish > between "continue after restore" and "resume", other than by examining the > device's state -- since the PM core doesn't pass any information to the > resume() method. That's pretty much what I said about prethaw though, no? Anyway, > Anyway, based on this analysis it seems reasonable to have Six (6) method > pointers. Suggested names (in the same order as above): > > pre_snaphot() > post_snapshot() > pre_restore() > post_restore() > suspend() > resume() > > People apparently assume that pre_snapshot() and pre_restore() would > always do the same thing and hence be redundant. I'm not so sure; time > will tell. Doing it this way certainly is more clear. Right. I did assume that pre_snapshot and pre_restore would be effectively the same since they both have to quiesce the device and assume not much more. I'm not averse to making it explicit, many drivers that don't care can just assign the same function. > Then there's the question of having early_ and late_ versions of some of > these things (i.e., one called with interrupts enabled, the other with > interrupts disabled). I don't know to what extent that would be > necessary; perhaps the each method call should occur in two phases with > the interrupt-enable status changed in between. Then the interrupt-enable > setting could be passed as an argument. Good point. Though if we go for passing the interrupt-enable setting as an argument then many drivers will have the same "if (irqs_disabled()) return" code. Hm. I guess passing it isn't even strictly necessary. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part
_______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm