[alsa-devel] ALI5451: "stimer is not ready"
Takashi Iwai
tiwai at suse.de
Wed Feb 18 09:11:27 CET 2009
At Tue, 17 Feb 2009 18:28:49 +0100,
hagedorn at kimae.de wrote:
>
>
> Dear All,
>
> since our hardware supplier changed the processor type from Transmeta T5700
> (667MHz) to T5800 (997MHz), we experience massive problems with the sound
> card access.
>
> With the new T5800 processor we first noticed problems with IDE access. But it
> can be solved by switching "acpi=off" and choosing another processor type in
> kernel config, e.g. 'Pentium MMX' instead 'Transmeta Crusoe'.
>
> Moreover we experienced random appearance of
> "ali_stimer_read: stimer is not ready"
> messages from ALSA when accessing the sound card on T5800.
> I tried also 2.4.37 and 2.6.22 kernels. An update to ALSA 1.0.19 does not help
> too.
> The strange thing is that i can boot the same system over and over again...
> in some cases i get above error message, sometimes i get no ALSA error message
> at all but the sound card can not be accessed, and sometimes the system works
> and is recording sound - at least for a few hours.
> Loading the kernel module trident instead of ALSA makes the system freeze
> immediately on a T5800. On a T5700 it works.
> System yields regulary " i8253 count too high ! resetting " but does not
> seem to have any effect on system with T5700. On T5800 this messages is much
> more often. On 2.6.22 kernel i saw "TSC unstable" at boot time.
>
>
> I do not have knowledge about these timing things, so i would like to know
> a) what does above message mean exactly?
The driver checks stimer ("sample timer" I suppose) register.
The purpose of the function is to wait until one sample is proceeded.
By some reason on your machine, stimer register doesn't change.
> b) what timing source is alsa using and how can i influence it?
> c) what timing source is the kernel using and how can i influence it?
"stimer" is the sound device thing, and nothing to do with the kernel
timer. The timeout could be a kernel issue, though, because the
timeout is checked by the kernel timekeeping.
> d) can this be caused by defect hardware or buggy BIOS?
Always possible :)
> e) do you have any other ideas (e.g. kernel options)?
Try the patch below, which simply disables the stimer check.
Looking at the code, stimer check is anyway non-fatal procedure,
and I feel it's just an overkill.
thanks,
Takashi
---
diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c
index b36c551..9bc9ded 100644
--- a/sound/pci/ali5451/ali5451.c
+++ b/sound/pci/ali5451/ali5451.c
@@ -321,6 +321,7 @@ static int snd_ali_codec_ready(struct snd_ali *codec,
return -EIO;
}
+#if 0 /* seems like an overkill */
static int snd_ali_stimer_ready(struct snd_ali *codec)
{
unsigned long end_time;
@@ -339,6 +340,9 @@ static int snd_ali_stimer_ready(struct snd_ali *codec)
snd_printk(KERN_ERR "ali_stimer_read: stimer is not ready.\n");
return -EIO;
}
+#else
+#define snd_ali_stimer_ready(codec) 0
+#endif
static void snd_ali_codec_poke(struct snd_ali *codec,int secondary,
unsigned short reg,
More information about the Alsa-devel
mailing list