Hello again; Evidently not many folks read this -- no responses after 4 months -- so I'll answer my own question :-) There were several problems with the original approach. These were all discovered through trial-and-error so I suppose there might still be other theoretical problems but at least now everthing seems to work. 1) call del_timer(&pc39_tl) before starting a new one. 2) always call select_wait (&pc39_wq, wait), not just when wait != 0. 3) pc39_tl.expires is the jiffy to wake up on, not the number of elapsed jiffies as it says in the KHG. so, it should be: pc39_tl.expires = jiffies + PC39_SELTO; Hope this helps someone else someday. If this is getting too hard to follow, I'll be happy to send you the whole driver. Elwood Downey ecdowney@noao.edu |