From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934573AbcATRFe (ORCPT ); Wed, 20 Jan 2016 12:05:34 -0500 Received: from unicorn.mansr.com ([81.2.72.234]:49971 "EHLO unicorn.mansr.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934556AbcATRF2 convert rfc822-to-8bit (ORCPT ); Wed, 20 Jan 2016 12:05:28 -0500 From: =?iso-8859-1?Q?M=E5ns_Rullg=E5rd?= To: Mark Rutland Cc: Marc Gonzalez , Marc Zyngier , Sebastian Frias , Jason Cooper , Arnd Bergmann , LKML , Thomas Gleixner , Linux ARM Subject: Re: [RFC PATCH v3] irqchip: Add support for Tango interrupt controller References: <569CE0F2.1060507@sigmadesigns.com> <569D0B80.1010908@sigmadesigns.com> <569D165E.4060004@sigmadesigns.com> <569FAFF5.4090909@arm.com> <569FB4AE.8000506@sigmadesigns.com> <20160120170219.GC28169@leverpostej> Date: Wed, 20 Jan 2016 17:05:26 +0000 In-Reply-To: <20160120170219.GC28169@leverpostej> (Mark Rutland's message of "Wed, 20 Jan 2016 17:02:20 +0000") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Mark Rutland writes: > On Wed, Jan 20, 2016 at 05:24:14PM +0100, Marc Gonzalez wrote: >> On 20/01/2016 17:10, Måns Rullgård wrote: >> >> > Marc Zyngier wrote: >> > >> >>> + if (of_property_read_u32(node, "reg", &ctl)) >> >>> + panic("%s: failed to get reg base", node->name); >> >>> + >> >>> + chip = kzalloc(sizeof(*chip), GFP_KERNEL); >> >>> + chip->ctl = ctl; >> >>> + chip->base = base; >> > >> > As I said before, this assumes the outer DT node uses a ranges >> > property. Normally reg properties work the same whether they specify an >> > offset within an outer "ranges" or have a full address directly. It >> > would be easy enough to make this work with either, so I don't see any >> > reason not to. >> >> IIRC, I was told very early in the review process that the ranges prop >> was mandatory. Lemme look for it... It was Arnd: >> >> http://thread.gmane.org/gmane.linux.ports.arm.kernel/444131/focus=444207 > > I believe Arnd's point was that you need _a_ ranges property, rather > than specifically requiring an idmap/empty ranges property. > > As Marc pointed out, you can use of_iomap on the child nodes to map the > portions described by the reg properties, which will handle any > ranges-based translation automatically. No, that's going to get ugly because the generic irqchip needs a single base address and some of the registers are shared (not part of the range specified in the child nodes). -- Måns Rullgård