[lkml]   [2004]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Resume enhancement: restore pci config space
At Tue, 01 Jun 2004 17:06:38 +0200,
Arjan van de Ven wrote:
> [1 <text/plain (quoted-printable)>]
> > int xxx_resume(struct pci_dev *dev)
> > {
> > int err;
> > if ((err = pci_default_resume(dev)) < 0)
> > return err;
> > // ... do h/w specific
> > }
> well define "h/w specific", just give me an example of a real (alsa?)
> driver that would use it (or point me to one) so that I can see if this
> is the best API, what the return value should be etc etc

I'm afraid the ALSA drivers aren't be the best examples :)
It doesn't handle the error in suspend/resume at all.

Anyway, you can find suspend/resume callbacks in linux/sound/pci and
subdirectories (e.g. atiixp.c, es1968.c, intel8x0.c...)
Note that suspend/resume prototype is different from pci callbacks to
be interated with the power handler on ALSA control API.

Hmm, looking at them right now, and i found most of them don't have
pci_suspend_state() because it worked without saving/restoring the pci
state _casually_, and missing pci_set_power_state(), etc...
Using "standard" functions would be easier to fix such things.

> >
> > but IMO, the jobs of pci_default_suspend/resume() should be applied
> > always after/before calling driver's suspend/resume callbacks.
> I would be very wary of unconditionally doing the resume thing without
> the driver having had a chance to do it's thing. Imo the driver HAS to
> be able to override stuff or at least talk to the hw before the generic
> resume happens.

Ok, agreed.
Providing functions to do the standard jobs would suffice.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2005-03-22 14:03    [from the cache]
©2003-2011 Jasper Spaans