Re: [PATCH] Add pci_save_state() to ALSA

From: Takashi Iwai
Date: Fri Nov 12 2004 - 09:00:17 EST


At Fri, 12 Nov 2004 14:45:40 +0100,
Arjan van de Ven wrote:
>
> On Fri, 2004-11-12 at 14:26 +0100, Takashi Iwai wrote:
> > But pci_save_state() is called again after the driver's suspend
> > callback is called. So, the final saved state must be anyway same.
>
> no that changed recently in the upstream kernel.
> pci_save_state() is now only called if there is no suspend callback in the driver!

Ah, thanks, that explains why (I referred 2.6.10-rc1).

If so, the patch is almost correct, but pci_save_state() should be put
after the call of callback.


Takashi

--- linux/sound/core/init.c 8 Nov 2004 11:37:08 -0000 1.48
+++ linux/sound/core/init.c 12 Nov 2004 13:56:32 -0000
@@ -782,12 +782,15 @@
int snd_card_pci_suspend(struct pci_dev *dev, u32 state)
{
snd_card_t *card = pci_get_drvdata(dev);
+ int err;
if (! card || ! card->pm_suspend)
return 0;
if (card->power_state == SNDRV_CTL_POWER_D3hot)
return 0;
/* FIXME: correct state value? */
- return card->pm_suspend(card, 0);
+ err = card->pm_suspend(card, 0);
+ pci_save_state(dev);
+ return err;
}

int snd_card_pci_resume(struct pci_dev *dev)
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/