[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20100127231832.GF29665@n2100.arm.linux.org.uk>
Date: Wed, 27 Jan 2010 23:18:32 +0000
From: Russell King - ARM Linux <linux@....linux.org.uk>
To: adharmap@...eaurora.org
Cc: linux-arm-kernel@...ts.infradead.org, Ingo Molnar <mingo@...e.hu>,
Catalin Marinas <catalin.marinas@....com>,
Yinghai Lu <yinghai@...nel.org>,
Tony Lindgren <tony@...mide.com>,
Santosh Shilimkar <santosh.shilimkar@...com>,
Kevin Hilman <khilman@...prootsystems.com>,
Kalle Valo <kalle.valo@....fi>, Jean Pihet <jpihet@...sta.com>,
Linus Walleij <linus.walleij@...ricsson.com>,
Colin Tuckley <colin.tuckley@....com>,
Philby John <pjohn@...mvista.com>,
Srinidhi Kasagar <srinidhi.kasagar@...ricsson.com>,
Alessandro Rubini <rubini@...pv.it>,
Andrea Gallo <andrea.gallo@...ricsson.com>,
linux-kernel@...r.kernel.org, linux-omap@...r.kernel.org,
Abhijeet Dharmapurikar <adharmap@...cinc.com>
Subject: Re: [PATCH 3/5] gic: Add set_type callback
On Wed, Jan 27, 2010 at 11:32:27AM -0800, adharmap@...eaurora.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-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists