From patchwork Thu Sep 20 17:14:01 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Walmsley X-Patchwork-Id: 1486751 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by patchwork2.kernel.org (Postfix) with ESMTP id 1DB09DF2D2 for ; Thu, 20 Sep 2012 17:16:01 +0000 (UTC) Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1TEkKF-0001Kl-9v; Thu, 20 Sep 2012 17:14:07 +0000 Received: from utopia.booyaka.com ([74.50.51.50]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1TEkKA-0001JV-GT for linux-arm-kernel@lists.infradead.org; Thu, 20 Sep 2012 17:14:03 +0000 Received: (qmail 14920 invoked by uid 1019); 20 Sep 2012 17:14:01 -0000 Date: Thu, 20 Sep 2012 17:14:01 +0000 (UTC) From: Paul Walmsley To: Jon Hunter Subject: Re: [PATCH V3 4/8] ARM: OMAP4430: Create PMU device via HWMOD In-Reply-To: <1347290626-21164-5-git-send-email-jon-hunter@ti.com> Message-ID: References: <1347290626-21164-1-git-send-email-jon-hunter@ti.com> <1347290626-21164-5-git-send-email-jon-hunter@ti.com> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 X-Spam-Note: CRM114 invocation failed X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: Kevin Hilman , Benoit Cousson , Tony Lindgren , Ming Lei , Will Deacon , linux-omap , linux-arm X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-arm-kernel-bounces@lists.infradead.org Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org Hi On Mon, 10 Sep 2012, Jon Hunter wrote: > From: Ming Lei > > For OMAP4430 PMU events are routed to the CPU via the cross trigger interface > (CTI) because there are no dedicated interrupts. In order to route the PMU > events via the CTI IRQs, the following modules must be enabled: > > l3_instr, l3_main_3, debugss > > Therefore, build the arm-pmu device via these three HWMODs. > > Cc: Ming Lei > Cc: Will Deacon > Cc: Benoit Cousson > Cc: Paul Walmsley > Cc: Kevin Hilman > > Signed-off-by: Ming Lei > Signed-off-by: Will Deacon > Signed-off-by: Jon Hunter Modified this one to skip the OMAP4430 PMU device creation for now and log a message; updated patch below. - Paul From: Ming Lei Date: Mon, 10 Sep 2012 10:23:42 -0500 Subject: [PATCH] ARM: OMAP4430: PMU: prepare to create PMU device via HWMOD For OMAP4430 PMU events are routed to the CPU via the cross trigger interface (CTI) because there are no dedicated interrupts. In order to route the PMU events via the CTI IRQs, the following modules must be enabled: l3_instr, l3_main_3, debugss Therefore, build the arm-pmu device via these three HWMODs. However, the CTI support for this platform still needs some work. Until that's finished, temporarily disable the PMU on OMAP4430. Cc: Ming Lei Cc: Will Deacon Cc: Benoit Cousson Cc: Paul Walmsley Cc: Kevin Hilman Signed-off-by: Ming Lei Signed-off-by: Will Deacon Signed-off-by: Jon Hunter [paul@pwsan.com: temporarily disabled OMAP4430 PMU support until a better CTI interface can be implemented; added patch description note] Signed-off-by: Paul Walmsley --- arch/arm/mach-omap2/pmu.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/arch/arm/mach-omap2/pmu.c b/arch/arm/mach-omap2/pmu.c index cf68bab..c49e058 100644 --- a/arch/arm/mach-omap2/pmu.c +++ b/arch/arm/mach-omap2/pmu.c @@ -19,6 +19,7 @@ static char *omap2_pmu_oh_names[] = {"mpu"}; static char *omap3_pmu_oh_names[] = {"mpu", "debugss"}; +static char *omap4430_pmu_oh_names[] = {"l3_main_3", "l3_instr", "debugss"}; static struct platform_device *omap_pmu_dev; /** @@ -27,16 +28,16 @@ static struct platform_device *omap_pmu_dev; * @oh_names: Array of OMAP HWMODS names required to create PMU device * * Uses OMAP HWMOD framework to create and register an ARM PMU device - * from a list of HWMOD names passed. Currently supports OMAP2 and - * OMAP3 devices. + * from a list of HWMOD names passed. Currently supports OMAP2, OMAP3 + * and OMAP4430 devices. */ static int __init omap2_init_pmu(unsigned oh_num, char *oh_names[]) { int i; - struct omap_hwmod *oh[2]; + struct omap_hwmod *oh[3]; char *dev_name = "arm-pmu"; - if ((!oh_num) || (oh_num > 2)) + if ((!oh_num) || (oh_num > 3)) return -EINVAL; for (i = 0; i < oh_num; i++) { @@ -66,6 +67,7 @@ static int __init omap_init_pmu(void) * * OMAP24xx: mpu * OMAP3xxx: mpu, debugss + * OMAP4430: l3_main_3, l3_instr, debugss */ if (cpu_is_omap24xx()) { oh_num = ARRAY_SIZE(omap2_pmu_oh_names); @@ -73,6 +75,12 @@ static int __init omap_init_pmu(void) } else if (cpu_is_omap34xx()) { oh_num = ARRAY_SIZE(omap3_pmu_oh_names); oh_names = omap3_pmu_oh_names; + } else if (cpu_is_omap443x()) { + oh_num = ARRAY_SIZE(omap4430_pmu_oh_names); + oh_names = omap4430_pmu_oh_names; + /* XXX Remove the next two lines when CTI driver available */ + pr_info("ARM PMU: not yet supported on OMAP4430 due to missing CTI driver\n"); + return 0; } else { return 0; }