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>