mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Messing up driver model API
@ 2003-06-11 20:36 Pavel Machek
  2003-06-11 21:21 ` Patrick Mochel
  0 siblings, 1 reply; 3+ messages in thread
From: Pavel Machek @ 2003-06-11 20:36 UTC (permalink / raw)
  To: Patrick Mochel, kernel list, torvalds

Hi!

So you just had to mess it up... Having suspend(device *, state,
level) might be bad, but having suspend(device *, state, level) in one
piece of code and {suspend,save}(device *, state) is *way* worse. (And
I did not see any proposal on l-k. I hope I just missed it).

So are you going to revert it or convert whole driver model to use
{suspend,save}(device *, state)?
									Pavel

[driver model] Add save() and restore() methods for system device drivers. 

It turns out that at least some system device drivers need to allocate 
memory and/or sleep for one reason or another when either saving or 
restoring state. 

Instead of adding a 'level' paramter to the suspend() and resume() methods,
which I despise and think is a horrible programming interface, two new 
methods have been added to struct sysdev_driver:

        int     (*save)(struct sys_device *, u32 state);
        int     (*restore)(struct sys_device *);

that are called explicitly before and after suspend() and resume() 
respectively, with interrupts enabled. This gives the drivers the
flexibility to allocate memory and sleep, if necessary. 

-- 
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-06-12 10:28 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-06-11 20:36 Messing up driver model API Pavel Machek
2003-06-11 21:21 ` Patrick Mochel
2003-06-12 10:41   ` Pavel Machek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®