Messages in this thread | | | Date | Tue, 01 Jun 2004 17:26:51 +0200 | From | Takashi Iwai <> | Subject | Re: 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.
Takashi - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |