diff options
author | Krzysztof Helt <krzysztof.h1@wp.pl> | 2009-12-20 14:15:19 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-12-21 06:03:11 -0500 |
commit | db8cf334f66bdf1ba2b3d2f7128095fc9b7a6e2b (patch) | |
tree | b6b90f29fb295be3df8f6083057cee738a5c2081 /sound | |
parent | 40962d7c741de1c21b6ce8516c1d9f8836fb383e (diff) |
ALSA: sbawe: fix memory detection
Memory amount is increased before a successful write-read
sequence is done. Thus, 512 kB of onboard memory is detected
on memoryless cards like SB32.
Move the increasing of memory counter after successful read
is done.
Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r-- | sound/isa/sb/emu8000.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sound/isa/sb/emu8000.c b/sound/isa/sb/emu8000.c index 96678d5d383..751762f1c59 100644 --- a/sound/isa/sb/emu8000.c +++ b/sound/isa/sb/emu8000.c | |||
@@ -393,8 +393,6 @@ size_dram(struct snd_emu8000 *emu) | |||
393 | 393 | ||
394 | while (size < EMU8000_MAX_DRAM) { | 394 | while (size < EMU8000_MAX_DRAM) { |
395 | 395 | ||
396 | size += 512 * 1024; /* increment 512kbytes */ | ||
397 | |||
398 | /* Write a unique data on the test address. | 396 | /* Write a unique data on the test address. |
399 | * if the address is out of range, the data is written on | 397 | * if the address is out of range, the data is written on |
400 | * 0x200000(=EMU8000_DRAM_OFFSET). Then the id word is | 398 | * 0x200000(=EMU8000_DRAM_OFFSET). Then the id word is |
@@ -414,7 +412,9 @@ size_dram(struct snd_emu8000 *emu) | |||
414 | /*snd_emu8000_read_wait(emu);*/ | 412 | /*snd_emu8000_read_wait(emu);*/ |
415 | EMU8000_SMLD_READ(emu); /* discard stale data */ | 413 | EMU8000_SMLD_READ(emu); /* discard stale data */ |
416 | if (EMU8000_SMLD_READ(emu) != UNIQUE_ID2) | 414 | if (EMU8000_SMLD_READ(emu) != UNIQUE_ID2) |
417 | break; /* we must have wrapped around */ | 415 | break; /* no memory at this address */ |
416 | |||
417 | size += 512 * 1024; /* increment 512kbytes */ | ||
418 | 418 | ||
419 | snd_emu8000_read_wait(emu); | 419 | snd_emu8000_read_wait(emu); |
420 | 420 | ||