[linux-dvb] syslog: av7110_fw_request: timeout waiting for HANDSHAKE_REG - What does this mean?

Johannes Stezenbach js at linuxtv.org
Tue Jun 14 02:03:09 CEST 2005

On Wed, Jun 08, 2005 at 03:53:44AM -0700, C.Y.M wrote:
> Johannes Stezenbach wrote:
> > On Fri, Jun 03, 2005 at 10:06:52AM +0200, Sebastian wrote:
> > 
> >>Jun  3 05:31:43 hal9000 av7110_fw_request: timeout waiting for HANDSHAKE_REG
> > 
> > I don't know what causes it. The error message means the firmware
> > crashed (or it's internal state got confused) in a different than
> > the usual location.
> I am able to reproduce this "handshake" error by maxing my cpu and then using an
> application that outputs through the FF card.  For example.. I start mencoder to
> encode an mpeg file which pretty much uses all the cpu on my machine.  Then, I
> use mplayer to output a mpg file with mpegpes while the machine is still
> encoding the other file.  Almost immediately I start finding "av7110_fw_request:
> timeout waiting for HANDSHAKE_REG" in the syslog. If I am not maxing out my cpu
> (ie; encoding a file) while I play a mpg via mpegpes, then the errors do not occur.

I just fixed a bug in timeout handling:

        start = jiffies;
        while (rdebi(av7110, DEBINOSWAP, COMMAND, 0, 2 )) {
-               msleep(1);
                if (time_after(jiffies, start + ARM_WAIT_FREE)) {
                        printk(KERN_ERR "dvb-ttpci: %s(): timeout waiting for COMMAND idle\n", __FUNCTION__);
                        return -ETIMEDOUT;
+               msleep(1);

(multiple occurences)

When the machine is busy, msleep(1) can sleep unexpectedly long.
Additionally, it doesn't make sense to sleep and then exit with
a timeout without retesting the condition we're waiting for.

Please test current CVS if this fixes the HANDSHAKE_REG timeout for you.


More information about the linux-dvb mailing list