On Wed, Jan 27, 2010 at 11:32:27AM -0800, adhar...@codeaurora.org wrote: > + if (flow_type & (IRQ_TYPE_EDGE_RISING|IRQ_TYPE_EDGE_FALLING)) { > + reg_value |= (2<<bit_index); > + writel(reg_value, gic_dist_base(irq) + GIC_DIST_CONFIG > + + register_index); > + __set_irq_handler_unlocked(irq, handle_edge_irq); > + } > + > + if (flow_type & (IRQ_TYPE_LEVEL_HIGH|IRQ_TYPE_LEVEL_LOW)) {
This is actually where things start to get rather sticky - because there may well be on-chip inverters between the GIC and external peripherals. Since the GIC can only sense one edge or one level depending on the hardware setup, it seems wrong to allow the configuration of both high and low levels, and both edges. -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html