Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Apr 2014 15:00:10 -0700
From:      Nathan Whitehorn <nwhitehorn@freebsd.org>
To:        Jakub Klama <jakub.klama@uj.edu.pl>, freebsd-arm@freebsd.org
Subject:   Re: [RFC] Refactored interrupt handling on ARM
Message-ID:  <534C5A6A.1090707@freebsd.org>
In-Reply-To: <f2bebfa812ecb70f423b6be4779b217b@uj.edu.pl>
References:  <3e7f866f4bc774975ae3c85e0df78ec2@uj.edu.pl> <53418D13.7030107@freebsd.org> <534C0F48.2090302@freebsd.org> <f2bebfa812ecb70f423b6be4779b217b@uj.edu.pl>

next in thread | previous in thread | raw e-mail | index | archive | help

On 04/14/14 13:58, Jakub Klama wrote:
> On Mon, 14 Apr 2014 09:39:36 -0700, Nathan Whitehorn wrote:
>> This is really nice! One quick question: why have you made
>> FDT_MAP_IRQ() a public interface? Shouldn't calling the function it
>> maps to just be a private implementation detail in nexus?
>> -Nathan
>
> Well, FDT_MAP_IRQ() existed before my changes and was public. It just
> returned pin and discarded the node parameter:
>
> #define    FDT_MAP_IRQ(node, pin)    (pin)
>
> so I left it as is and changed the implementation to route IRQ to
> parent IC.
>
>

I had deliberately made it private with the last round of interrupt 
changes. The idea was to rely completely on newbus for interrupt 
mapping. Having a public interface allows code to bypass the bus 
hierarchy, which usually isn't a good thing. This ended up happening all 
over the place on PowerPC, for example. This made a lot of drivers less 
MI than they should have been and took a lot of time to get rid of.
-Nathan




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?534C5A6A.1090707>