summaryrefslogtreecommitdiffstats
path: root/sound/pci/fm801.c
diff options
context:
space:
mode:
authorAndy Shevchenko2015-01-07 23:39:17 +0100
committerTakashi Iwai2015-01-08 08:25:38 +0100
commit3db084fd0af5407eebeb9b7ebd5d0425b362c519 (patch)
treeec56ccf3c0a243ff330a6928c620205f61985520 /sound/pci/fm801.c
parentALSA: fm801: move to pcim_* and devm_* functions (diff)
downloadkernel-qcow2-linux-3db084fd0af5407eebeb9b7ebd5d0425b362c519.tar.gz
kernel-qcow2-linux-3db084fd0af5407eebeb9b7ebd5d0425b362c519.tar.xz
kernel-qcow2-linux-3db084fd0af5407eebeb9b7ebd5d0425b362c519.zip
ALSA: fm801: PCI core handles power state for us
There is no need to repeat the work that is already done in the PCI driver core. The patch removes excerpts from suspend and resume callbacks. Note that there is no more calls performed to enable or disable a PCI device during suspend-resume cycle. Nowadays they seems to be superflous. Someone can read more in [1]. [1] https://www.kernel.org/doc/ols/2009/ols2009-pages-319-330.pdf Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/fm801.c')
-rw-r--r--sound/pci/fm801.c15
1 files changed, 0 insertions, 15 deletions
diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c
index dd6f23fbbdf9..1a0494eff0c6 100644
--- a/sound/pci/fm801.c
+++ b/sound/pci/fm801.c
@@ -1375,7 +1375,6 @@ static unsigned char saved_regs[] = {
static int snd_fm801_suspend(struct device *dev)
{
- struct pci_dev *pci = to_pci_dev(dev);
struct snd_card *card = dev_get_drvdata(dev);
struct fm801 *chip = card->private_data;
int i;
@@ -1387,29 +1386,15 @@ static int snd_fm801_suspend(struct device *dev)
for (i = 0; i < ARRAY_SIZE(saved_regs); i++)
chip->saved_regs[i] = inw(chip->port + saved_regs[i]);
/* FIXME: tea575x suspend */
-
- pci_disable_device(pci);
- pci_save_state(pci);
- pci_set_power_state(pci, PCI_D3hot);
return 0;
}
static int snd_fm801_resume(struct device *dev)
{
- struct pci_dev *pci = to_pci_dev(dev);
struct snd_card *card = dev_get_drvdata(dev);
struct fm801 *chip = card->private_data;
int i;
- pci_set_power_state(pci, PCI_D0);
- pci_restore_state(pci);
- if (pci_enable_device(pci) < 0) {
- dev_err(dev, "pci_enable_device failed, disabling device\n");
- snd_card_disconnect(card);
- return -EIO;
- }
- pci_set_master(pci);
-
snd_fm801_chip_init(chip, 1);
snd_ac97_resume(chip->ac97);
snd_ac97_resume(chip->ac97_sec);