On Wed, Apr 30, 2008 at 05:28:55PM +0100, Alan Cox wrote:Yes, you are right. PPS events should be registered as soon as they arrive, that's why I'd like to put events registration (or at least IRQ timestamps) into do_IRQ() as follow: fastcall unsigned int do_IRQ(struct pt_regs *regs) { struct pt_regs *old_regs; /* high bit used in ret_from_ code */ int irq = ~regs->orig_eax; struct irq_desc *desc = irq_desc + irq; #ifdef CONFIG_4KSTACKS union irq_ctx *curctx, *irqctx; u32 *isp; #endif if (unlikely((unsigned)irq >= NR_IRQS)) { printk(KERN_EMERG "%s: cannot handle IRQ %d\n", __FUNCTION__, irq); BUG(); } pps_irq_event_register(irq); old_regs = set_irq_regs(regs); irq_enter(); but this solution arises two drawbacks: 1) the PPS echo functions should be executed by pps_irq_event_register() into do_IRQ(). Brrrr... :) 2) the shared IRQ line may cause "false" PPS events. The latter drawback can be solved simply not using the shared IRQs for PPS sources but the former is not an easy task... so I suppose we should delay the echo function call at "safer" time, maybe using the function tty->ldisc.dcd_change(). I see. So what do you suggest to do? Should I add an ldisc to register/unregister serial PPS sources and adding function tty->ldisc.dcd_change() to manage the events? Thanks for your suggestions, Rodolfo -- GNU/Linux Solutions e-mail: giometti@enneenne.com Linux Device Driver giometti@linux.it Embedded Systems phone: +39 349 2432127 UNIX programming skype: rodolfo.giometti --
| Mark Lord | PCIe Hotplug: NFG unless I boot with card already inserted. |
| Andrew Morton | 2.6.23-mm1 |
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Greg Kroah-Hartman | [PATCH 005/196] Chinese: add translation of SubmittingDrivers |
| Wes Chow | Re: Multicast packet loss |
| Kenny Chang | Multicast packet loss |
| David Miller | [GIT]: Networking |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
git: | |
