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>

index | next in thread | raw e-mail

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


home | help

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