aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/intel8x0.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-18 13:50:44 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-18 13:50:44 -0400
commit98ae6878f151b0b508b09a36367c231b707a88cf (patch)
treed6fdd23d6f78d0713ac6290c75bf39c2a65c12c7 /sound/pci/intel8x0.c
parentb720a3be1abd0cb5b9b530c0a1b4044fec4de60e (diff)
parent5f1545bc45a33361d6bb2fb44af7c35bcd733b9d (diff)
Merge branch 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa
* 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa: [ALSA] hda-intel - Fix HDA buffer alignment [ALSA] hda-codec - Add model for HP Compaq d5750 [ALSA] hda-codec - Add support for MacBook Pro 1st generation [ALSA] version 1.0.14rc3 [ALSA] hda-codec - Add model for HP Compaq d5700 [ALSA] intel8x0 - Fix Oops at kdump crash kernel [ALSA] hda-codec - Fix speaker output on MacPro [ALSA] hda-codec - more systems for Analog Devices [ALSA] hda-intel - Fix codec probe with ATI contorllers [ALSA] hda-codec - Add suppoprt for Asus M2N-SLI motherboard [ALSA] intel8x0 - Fix speaker output after S2RAM [ALSA] ac97 - fix AD shared shared jack control logic [ALSA] soc - Fix dependencies in Kconfig files
Diffstat (limited to 'sound/pci/intel8x0.c')
-rw-r--r--sound/pci/intel8x0.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index a289abfc7172..7cf2dcb9d8d4 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -725,10 +725,11 @@ static void fill_nocache(void *buf, int size, int nocache)
725static inline void snd_intel8x0_update(struct intel8x0 *chip, struct ichdev *ichdev) 725static inline void snd_intel8x0_update(struct intel8x0 *chip, struct ichdev *ichdev)
726{ 726{
727 unsigned long port = ichdev->reg_offset; 727 unsigned long port = ichdev->reg_offset;
728 unsigned long flags;
728 int status, civ, i, step; 729 int status, civ, i, step;
729 int ack = 0; 730 int ack = 0;
730 731
731 spin_lock(&chip->reg_lock); 732 spin_lock_irqsave(&chip->reg_lock, flags);
732 status = igetbyte(chip, port + ichdev->roff_sr); 733 status = igetbyte(chip, port + ichdev->roff_sr);
733 civ = igetbyte(chip, port + ICH_REG_OFF_CIV); 734 civ = igetbyte(chip, port + ICH_REG_OFF_CIV);
734 if (!(status & ICH_BCIS)) { 735 if (!(status & ICH_BCIS)) {
@@ -768,7 +769,7 @@ static inline void snd_intel8x0_update(struct intel8x0 *chip, struct ichdev *ich
768 ack = 1; 769 ack = 1;
769 } 770 }
770 } 771 }
771 spin_unlock(&chip->reg_lock); 772 spin_unlock_irqrestore(&chip->reg_lock, flags);
772 if (ack && ichdev->substream) { 773 if (ack && ichdev->substream) {
773 snd_pcm_period_elapsed(ichdev->substream); 774 snd_pcm_period_elapsed(ichdev->substream);
774 } 775 }
@@ -2470,7 +2471,10 @@ static int intel8x0_suspend(struct pci_dev *pci, pm_message_t state)
2470 } 2471 }
2471 pci_disable_device(pci); 2472 pci_disable_device(pci);
2472 pci_save_state(pci); 2473 pci_save_state(pci);
2473 pci_set_power_state(pci, pci_choose_state(pci, state)); 2474 /* The call below may disable built-in speaker on some laptops
2475 * after S2RAM. So, don't touch it.
2476 */
2477 /* pci_set_power_state(pci, pci_choose_state(pci, state)); */
2474 return 0; 2478 return 0;
2475} 2479}
2476 2480