Hi folks,

When I am writing  qtest  cases for an interrupt controller,  I encounter some problems.

1) Can't intercept both the irq in and irq out for the same device.

It's a necessary feature for an interrupt controller qtest. However, as you can see  from qtest.c,  when a device has intercepted irq out or irq in, it can't intercept another.

"
	if (irq_intercept_dev) {
            qtest_send_prefix(chr);
            if (irq_intercept_dev != dev) {
                qtest_send(chr, "FAIL IRQ intercept already enabled\n");
            } else {
                qtest_send(chr, "OK\n");
            }
            return;
	}
"

In my opinion,  this code in qtest is protecting from intercepting irqs repeatedly. But irq in and out are different directions, they should be intercepted simultaneously. Is it right?

2) Can't get  the right IRQ num.

If  I  intercept an IRQ out,  I can get the num of IRQ if the  IRQ raises, .  But the really IRQ I want to get is the IRQ that the interrupt controller selected out. However I can't get this IRQ from qtest_irq_handler.

Are there already some methods to surmount these problems?  Any advice is well appreciated. Thanks very much.

Zhiwei