Subject: Re: com.c patch to track PPS
To: Erik Fair <fair@clock.org>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: tech-kern
Date: 02/06/2000 10:29:16
In message <v04220818b4c321bace41@[216.240.40.200]>Erik Fair writes

>I just tried this patch on an Alpha PC164 with a GPSclock model 200; 
>no soap. There's still something not quite right in the com.c driver.

Doh!  <kick self>.  Changing comparam() to merge the sc_ppsmask into
sc_msr_mask has no effect, unless the PPSAPI ioctl also calls
comparam().  And to do that, it needs to fake up a struct termios, and
defeat the `no change' optimzation in comparam().

The patch I emailed you earlier will make PPSAPi work,but it might do
the wrong thing with DCD changes if CLOCAL or MDMBUF are set.

I think the right fix is to just move the ppsapi code in
comintr() outside of the

		if (ISSET(delta, sc->sc_msr_mask)) {
			SET(sc->sc_msr_delta, delta);

etst, and just test on delta directly.  I'll post a patch after I've
had my coffee :_).


BTW: this particular bug is limited to the com driver.  The so-called
but not-really mi zs driver works. I dont know about the TC Alphas;
don't they still use the 4.4bsd/pmax-derived scc driver?