diff options
author | David S. Miller <davem@davemloft.net> | 2008-04-18 02:56:30 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-18 02:56:30 -0400 |
commit | 1e42198609d73ed1a9adcba2af275c24c2678420 (patch) | |
tree | 32fd4d9073bfc0f3909af8f9fb4bcff38951d01a /sound/pci/es1968.c | |
parent | 794eb6bf20ebf992c040ea831cd3a9c64b0c1f7a (diff) | |
parent | 4b119e21d0c66c22e8ca03df05d9de623d0eb50f (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Diffstat (limited to 'sound/pci/es1968.c')
-rw-r--r-- | sound/pci/es1968.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c index 25ccfce45759..7d911a18c082 100644 --- a/sound/pci/es1968.c +++ b/sound/pci/es1968.c | |||
@@ -617,6 +617,18 @@ static int snd_es1968_ac97_wait(struct es1968 *chip) | |||
617 | return 1; /* timeout */ | 617 | return 1; /* timeout */ |
618 | } | 618 | } |
619 | 619 | ||
620 | static int snd_es1968_ac97_wait_poll(struct es1968 *chip) | ||
621 | { | ||
622 | int timeout = 100000; | ||
623 | |||
624 | while (timeout-- > 0) { | ||
625 | if (!(inb(chip->io_port + ESM_AC97_INDEX) & 1)) | ||
626 | return 0; | ||
627 | } | ||
628 | snd_printd("es1968: ac97 timeout\n"); | ||
629 | return 1; /* timeout */ | ||
630 | } | ||
631 | |||
620 | static void snd_es1968_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) | 632 | static void snd_es1968_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) |
621 | { | 633 | { |
622 | struct es1968 *chip = ac97->private_data; | 634 | struct es1968 *chip = ac97->private_data; |
@@ -645,7 +657,7 @@ static unsigned short snd_es1968_ac97_read(struct snd_ac97 *ac97, unsigned short | |||
645 | outb(reg | 0x80, chip->io_port + ESM_AC97_INDEX); | 657 | outb(reg | 0x80, chip->io_port + ESM_AC97_INDEX); |
646 | /*msleep(1);*/ | 658 | /*msleep(1);*/ |
647 | 659 | ||
648 | if (! snd_es1968_ac97_wait(chip)) { | 660 | if (!snd_es1968_ac97_wait_poll(chip)) { |
649 | data = inw(chip->io_port + ESM_AC97_DATA); | 661 | data = inw(chip->io_port + ESM_AC97_DATA); |
650 | /*msleep(1);*/ | 662 | /*msleep(1);*/ |
651 | } | 663 | } |