Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Jul 1995 02:44:21 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        ache@astral.msk.su, bde@zeta.org.au, cvs-sys@freefall.cdrom.com
Subject:   Re: cvs commit: src/sys/i386/isa sio.c
Message-ID:  <199507021644.CAA18626@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>>>  Fight with hanging modems continued:
>>>  return EIO after t_timeout expired instead infinite looping in "siotx"
>>>  in comparam, consuming CPU time.

>>Why does this loop occur?  It can't happen with working 8250..16550
>>...
>Bruce, I don't know, *why* it occurs, I am not hardware expert.

This means that your fix is probably sub-optimal.  What makes the
problem go away?  close() doesn't do anything to unwedge the
transmitter bits, and open() fails early when it calls comparam().

>I only know that it *occurs* sometimes and my goal is to make
>modem pool which can work without human eye when possible.

>This thing cures by dropping DTR, EIO here usualy cause close
>and DTR drop. I am not think, that it is CTS hang, symptom
>are: modem TX light is on forever (sio waits, when TX done
>forever too). Joerg f.e. send me "thanx" for this fix, he
>have this situation too (it means that it isn't only my hardware).

Please submit a full bug report before hiding the problem.  For
this bug I would like to know at least:

1) state of all UART registers.
2) what happens when interrupts are disabled so the driver can't
   possibly keep feeding the transmitter.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199507021644.CAA18626>