From owner-svn-src-all@FreeBSD.ORG Sat Jan 29 20:25:20 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A1E2D1065674; Sat, 29 Jan 2011 20:25:20 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 773138FC16; Sat, 29 Jan 2011 20:25:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id p0TKPKLU044178; Sat, 29 Jan 2011 20:25:20 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id p0TKPK35044174; Sat, 29 Jan 2011 20:25:20 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201101292025.p0TKPK35044174@svn.freebsd.org> From: Marcel Moolenaar Date: Sat, 29 Jan 2011 20:25:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r218073 - in head/sys: arm/include dev/fdt powerpc/include X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Jan 2011 20:25:20 -0000 Author: marcel Date: Sat Jan 29 20:25:20 2011 New Revision: 218073 URL: http://svn.freebsd.org/changeset/base/218073 Log: Introduce macro FDT_MAP_IRQ to map from an interrupt controller and interrupt pin pair to a global IRQ number. When multiple PICs exist on a board, the interrupt pin alone is not unique. Modified: head/sys/arm/include/fdt.h head/sys/dev/fdt/fdt_common.c head/sys/powerpc/include/fdt.h Modified: head/sys/arm/include/fdt.h ============================================================================== --- head/sys/arm/include/fdt.h Sat Jan 29 19:55:29 2011 (r218072) +++ head/sys/arm/include/fdt.h Sat Jan 29 20:25:20 2011 (r218073) @@ -44,6 +44,9 @@ /* Max interrupt number */ #define FDT_INTR_MAX NIRQ +/* Map phandle/intpin pair to global IRQ number */ +#define FDT_MAP_IRQ(node, pin) (pin) + /* * Bus space tag. XXX endianess info needs to be derived from the blob. */ Modified: head/sys/dev/fdt/fdt_common.c ============================================================================== --- head/sys/dev/fdt/fdt_common.c Sat Jan 29 19:55:29 2011 (r218072) +++ head/sys/dev/fdt/fdt_common.c Sat Jan 29 20:25:20 2011 (r218073) @@ -480,7 +480,7 @@ fdt_intr_to_rl(phandle_t node, struct re pcell_t *intr; pcell_t intr_cells; int interrupt, trig, pol; - int i, intr_num, rv; + int i, intr_num, irq, rv; if (OF_getproplen(node, "interrupts") <= 0) /* Node does not have 'interrupts' property. */ @@ -532,7 +532,8 @@ fdt_intr_to_rl(phandle_t node, struct re intr_sl[i].trig = trig; intr_sl[i].pol = pol; - resource_list_add(rl, SYS_RES_IRQ, i, interrupt, interrupt, 1); + irq = FDT_MAP_IRQ(intr_par, interrupt); + resource_list_add(rl, SYS_RES_IRQ, i, irq, irq, 1); } out: Modified: head/sys/powerpc/include/fdt.h ============================================================================== --- head/sys/powerpc/include/fdt.h Sat Jan 29 19:55:29 2011 (r218072) +++ head/sys/powerpc/include/fdt.h Sat Jan 29 20:25:20 2011 (r218073) @@ -38,6 +38,9 @@ /* Max interrupt number */ #define FDT_INTR_MAX INTR_VECTORS +/* Map phandle/intpin pair to global IRQ number */ +#define FDT_MAP_IRQ(node, pin) powerpc_get_irq(node, pin) + /* * Bus space tag. XXX endianess info needs to be derived from the blob. */