From: "'Roger Luethi'" <rl@hellgate.ch>
To: Shing Chuang <ShingChuang@via.com.tw>
Cc: Urban Widmark <urban@teststation.com>,
"Ivan G." <ivangurdiev@linuxfreemail.com>,
Jeff Garzik <jgarzik@mandrakesoft.com>,
linux-kernel@vger.kernel.org, AJ Jiang <AJJiang@via.com.tw>
Subject: Re: [PATCH] #2 VIA Rhine stalls: TxAbort handling
Date: Thu, 16 May 2002 20:03:54 +0200 [thread overview]
Message-ID: <20020516180354.GA9151@k3.hellgate.ch> (raw)
In-Reply-To: <369B0912E1F5D511ACA5003048222B75A3C06B@EXCHANGE2>
On Thu, 16 May 2002 18:03:25 +0800, Shing Chuang wrote:
> As following three error conditions occurred, the VT6102 & VT86C100A
> chip are designed to shutdown TX for driver to examine the error frame.
>
> 1. Tx fifo underrun.
>
> 2. Tx Abort (Too many collisions occurred).
>
> 3. TxDescriptors status write back error. (Only on VT6102 chip)
Hey, thanks! That's exactly the piece of information I've been looking for.
> All the three conditions caused the TXON bit of CR1 went off. the
> driver must wait a little while until the bit go off, reset the pointer of
> [...]
> do {} while (BYTE_REG_BITS_IS_ON(CR0_TXON,&pMacRegs->byCR0));
The driver "waits a little" in the interrupt handler? How long can that
take, worst case? I don't know of many places where the kernel stops to
wait for an external device to change some value.
I have no numbers on the expected number of iterations, but I'd rather drop
out of the handler after a few failed checks and try again later (or just
reset the chip and log an error, if dropping out is rare enough :-)).
> current Tx descriptor, and then turn on TXON bit of CR1 again. Those may be
ITYM the TXON bit of CR0. TDMD1 is the one you are setting in CR1. Which
takes me to the next question:
According to my docs, internal registers are like this:
VT86C100A
Byte Bit
0x08 (CR0) 5 TDMD
0x08 (CR0) 6 RDMD
0x09 (CR1) 5 Reserved
0x09 (CR1) 6 Reserved
VT6102
Byte Bit
0x08 (CR0) 5 TDMD
0x08 (CR0) 6 RDMD
0x09 (CR1) 5 TDMD1
0x09 (CR1) 6 RDMD1
The descriptions in both data sheets are somewhat unclear, so maybe you
could enlighten me about why you chose to set TDMD1 instead of TDMD (which
is what the LK driver does)?
Roger
next prev parent reply other threads:[~2002-05-16 18:06 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-05-16 10:03 [PATCH] #2 VIA Rhine stalls: TxAbort handling Shing Chuang
2002-05-16 18:03 ` 'Roger Luethi' [this message]
2002-05-16 18:25 ` Richard B. Johnson
2002-05-16 20:31 ` 'Roger Luethi'
2002-05-16 16:39 ` Ivan G.
2002-05-17 2:54 ` [PATCH] #3 VIA Rhine stalls: Wait for the chip? 'Roger Luethi'
2002-05-16 21:05 ` [PATCH] #2 VIA Rhine stalls: TxAbort handling Richard B. Johnson
2002-05-17 0:16 ` 'Roger Luethi'
2002-05-17 12:51 ` Richard B. Johnson
2002-05-17 16:25 ` 'Roger Luethi'
[not found] <369B0912E1F5D511ACA5003048222B75A3C06E@EXCHANGE2>
[not found] ` <20020518040143.GA9318@k3.hellgate.ch>
2002-05-17 23:13 ` Ivan G.
2002-05-18 19:11 ` 'Roger Luethi'
-- strict thread matches above, loose matches on Subject: below --
2002-05-17 18:46 Manfred Spraul
2002-05-17 19:56 ` 'Roger Luethi'
2002-05-18 10:08 ` David Woodhouse
2002-05-16 3:13 Roger Luethi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20020516180354.GA9151@k3.hellgate.ch \
--to=rl@hellgate.ch \
--cc=AJJiang@via.com.tw \
--cc=ShingChuang@via.com.tw \
--cc=ivangurdiev@linuxfreemail.com \
--cc=jgarzik@mandrakesoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=urban@teststation.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox