aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorAndy Shevchenko <andy.shevchenko@gmail.com>2015-01-07 17:39:17 -0500
committerTakashi Iwai <tiwai@suse.de>2015-01-08 02:25:38 -0500
commit3db084fd0af5407eebeb9b7ebd5d0425b362c519 (patch)
treeec56ccf3c0a243ff330a6928c620205f61985520 /sound
parent5618955c4269b07c8177f88a8075d4879e74cd27 (diff)
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')
-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[] = {
1375 1375
1376static int snd_fm801_suspend(struct device *dev) 1376static int snd_fm801_suspend(struct device *dev)
1377{ 1377{
1378 struct pci_dev *pci = to_pci_dev(dev);
1379 struct snd_card *card = dev_get_drvdata(dev); 1378 struct snd_card *card = dev_get_drvdata(dev);
1380 struct fm801 *chip = card->private_data; 1379 struct fm801 *chip = card->private_data;
1381 int i; 1380 int i;
@@ -1387,29 +1386,15 @@ static int snd_fm801_suspend(struct device *dev)
1387 for (i = 0; i < ARRAY_SIZE(saved_regs); i++) 1386 for (i = 0; i < ARRAY_SIZE(saved_regs); i++)
1388 chip->saved_regs[i] = inw(chip->port + saved_regs[i]); 1387 chip->saved_regs[i] = inw(chip->port + saved_regs[i]);
1389 /* FIXME: tea575x suspend */ 1388 /* FIXME: tea575x suspend */
1390
1391 pci_disable_device(pci);
1392 pci_save_state(pci);
1393 pci_set_power_state(pci, PCI_D3hot);
1394 return 0; 1389 return 0;
1395} 1390}
1396 1391
1397static int snd_fm801_resume(struct device *dev) 1392static int snd_fm801_resume(struct device *dev)
1398{ 1393{
1399 struct pci_dev *pci = to_pci_dev(dev);
1400 struct snd_card *card = dev_get_drvdata(dev); 1394 struct snd_card *card = dev_get_drvdata(dev);
1401 struct fm801 *chip = card->private_data; 1395 struct fm801 *chip = card->private_data;
1402 int i; 1396 int i;
1403 1397
1404 pci_set_power_state(pci, PCI_D0);
1405 pci_restore_state(pci);
1406 if (pci_enable_device(pci) < 0) {
1407 dev_err(dev, "pci_enable_device failed, disabling device\n");
1408 snd_card_disconnect(card);
1409 return -EIO;
1410 }
1411 pci_set_master(pci);
1412
1413 snd_fm801_chip_init(chip, 1); 1398 snd_fm801_chip_init(chip, 1);
1414 snd_ac97_resume(chip->ac97); 1399 snd_ac97_resume(chip->ac97);
1415 snd_ac97_resume(chip->ac97_sec); 1400 snd_ac97_resume(chip->ac97_sec);