Hello, Thank you for your help. We just discovered that the "waits" we had in drm-tracking are not really necessary. So right now we do not need the interrupt to update the write pointer. Hopefully I will have a debug board next time I work on that part.
2009/6/6 Michael Trimarchi <[email protected]>: > What happen if you ack this irq and you take no lock on cmdq_irq, then arrive > another > one and you don't mask and mark it pending. Yes I should have disabled the interrupt... > [...] >> >> glamo_enable_cmdq_irq(gdrm); >> > > I suppose that here you will do an unmask of the interrupt. Yes. >> [...] >> spin_unlock_irqrestore( &gdrm->new_ring_write_lock, flags ); >> >> /* We try to make the irq happen somehow :( */ >> printk(KERN_INFO "[glamo-drm] enabling...\n"); >> glamo_enable_cmdq_irq(gdrm); >> > > The interrupt is not just umask? So way unmask it again? > If you want and interrupt at each new command in the buffer why you don't > mask > it and ack? After several trial&error iteratons we had the impression that the glamo chip needs to be told again that the IRQ for the CMDQ should be triggered..
