Re: Saving device driver state during shutdown

David Woodhouse (David.Woodhouse@mvhi.com)
Tue, 03 Aug 1999 13:04:41 +0100


mharris@meteng.on.ca said:
> If it is just saving your mixer settings that you are worried about,
> this has nothing to do whatsoever with the kernel. Any setting that
> can be read from ANY device on the system, which can also be equally
> written to, can be saved to disk by some program or another, and
> stored back upon bootup. The redhat default install does this for the
> mixer allready, unless one has not installed the required sound
> packages, or has disabled the boot time sound service.

Not quite.

On bootup, the system is fairly busy, and there can be a large delay between
initialising the kernel driver, and reloading the mixer levels from user-space.

Even with sound drivers as loadable modules, with a post-install script to fix
the levels, this has been known to take a few seconds - long enough to wake the
household at 3am when the module gets reloaded because something tries to make
a sound, and the default state of the line input is 'bloody loud' :)

While kerneld was still capable of storing persistent data for modules, I
made the SB driver save and restore mixer settings on load/unload. When it
first initialised the hardware, the previous mixer levels were restored - at
no time did it jump to some arbitrarily-chosen 'default' levels.

Since the death of kerneld, I haven't yet come up with a good solution for
this - perhaps it should be possible to pass the required levels on the
command line, or as an argument to the module?

One thing with which I experimented was reading the current levels back from
the hardware - on cards which support it, that's quite a nice solution.

---- ---- ----
David Woodhouse David.Woodhouse@mvhi.com Office: (+44) 1223 810302
Project Leader, Process Information Systems Mobile: (+44) 976 658355
Axiom (Cambridge) Ltd., Swaffham Bulbeck, Cambridge, CB5 0NA, UK.
finger dwmw2@ferret.lmh.ox.ac.uk for PGP key.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/