>> >> There are already a generic callbacks that does this. Normally the >> generic callbacks is used from buses and power domains. >> >> My new callbacks are intended to be used from the driver, so those are >> kind of different from the others in that sense. > > Hmm. I see. > > For that to work, the subsystem's .suspend() and .resume() callbacks will > have to be implemented in a special way, because of the unknown runtime PM > status of devices while those callbacks are being executed. Not sure I understand why you think the runtime PM status is unknown? In .suspend the runtime status can still be changed. Since the PM core disables runtime PM before invoking .suspend_late and since the PM core will keep runtime PM disabled until after the .resume_early has been invoked, it will be safe to operate on the runtime PM callbacks during this period - if the driver/bus are adopted for it. While the .resume callback gets invoked, the runtime status are restored to it's previous state, which the bus/driver would expect. Do you want me to send a patch for a driver that uses these callbacks? I suppose it would clarify how I am thinking... > > Presumably you think about subsystems that don't implement those callbacks > at all? If you mean that "drivers" is not a part of the term "subsystem" here, then I somewhat agree. My view is that it will be mostly drivers that make use of these callbacks. Though, I don't think we need to prevent subsystems or power domains from using them, they will only have to know what the consequences are. :-) Maybe there could even be some cases were it actually makes good sense of using them for subsystems, even if I yet not have come a cross such a case. Kind regards Ulf Hansson > > Rafael > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html