Re: Linux 2.4.13-ac4

Vojtech Pavlik
2001-10-29T07:47:19Z

On Sun, Oct 28, 2001 at 08:40:03PM +0000, Alan Cox wrote:

> o Handle chipsets that dont get 8254 latches (Roberto Biancardi)
> right and trigger the VIA warning in error

This looks good. I've done some investigation myself, and it looks like
on non-VIA chipsets that trigger the problem sometimes the two counter
bytes read from the 8254 get swapped. I've got some indirect evidence
that this also could happen with the original i8254.

This is a problem per se, because it also does nasty things to the
system clock then. And this is not always detected by the

if (count > LATCH) {}

test. I'd see two solutions for this:

1) Have a better heuristic about what the value read should be and
discard it if it doesn't look good, re-reading, and if it still doesn't
look good, re-programming the chip.

2) Always read the chip at least two times.

By the way, if we made the 8254 accesses (spinlock?) protected (which
should be done anyway, right now definitely more than one CPU can access
the registers at once), I think we could remove the outb(0, 0x43);,
saving some cycles.

--
Vojtech Pavlik
SuSE Labs