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 | } |
