From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759604AbbA0VqQ (ORCPT ); Tue, 27 Jan 2015 16:46:16 -0500 Received: from mailapp01.imgtec.com ([195.59.15.196]:48965 "EHLO mailapp01.imgtec.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753697AbbA0VqP (ORCPT ); Tue, 27 Jan 2015 16:46:15 -0500 From: James Hogan To: Ralf Baechle , CC: , James Hogan , Andrew Bresticker , Arnaldo Carvalho de Melo , Ingo Molnar , Jason Cooper , Paul Mackerras , Peter Zijlstra , Robert Richter , Thomas Gleixner , Subject: [PATCH 0/9] MIPS: Allow shared IRQ for timer & perf counter Date: Tue, 27 Jan 2015 21:45:46 +0000 Message-ID: <1422395155-16511-1-git-send-email-james.hogan@imgtec.com> X-Mailer: git-send-email 2.0.5 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [192.168.154.110] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The main purpose of this patchset is to enable the MIPS CPU IRQ lines to be shared by the timer handler and performance counter handlers on MIPS r2+ cores, i.e. using IRQF_SHARED instead of having the timer handler directly call the perf counter handler. This will allow the handling of local IRQs to scale to a 3rd IRQ for the fast debug channel (FDC), which would get pretty messy using calls between handlers as each interrupt can be arbitrarily routed to different or shared IRQ lines since MIPS r2. Pre-r2 IRQF_SHARED cannot be used as we aren't guaranteed to have individual local interrupt pending bits in CP0_Cause, so the interrupt conditions must be checked in the right order by the cevt-r4k handler. Patches 1-5 are minor refactors for stuff noticed along the way and shouldn't have any functional change by themselves. Patches 6-8 convert each of the timer and perf handlers to use compatible IRQ flags, and finally patch 9 makes the switch so that the interrupt line numbers may be the same on r2. Cc: Ralf Baechle Cc: Andrew Bresticker Cc: Arnaldo Carvalho de Melo Cc: Ingo Molnar Cc: Jason Cooper Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Robert Richter Cc: Thomas Gleixner Cc: linux-mips@linux-mips.org Cc: oprofile-list@lists.sf.net James Hogan (9): MIPS: cevt-r4k: Move handle_perf_irq() out of header MIPS: Use CAUSEF_TI, CAUSEF_PCI constants MIPS: Remove redundant IPTI==IPPCI logic irqchip: mips-gic: Fix typo in comment irqchip: mips-gic: Add missing definitions for FDC IRQ MIPS: cevt-r4k: Make interrupt handler shared MIPS: perf: Allow sharing IRQ with timer MIPS: OProfile: Allow sharing IRQ with timer MIPS: Allow shared IRQ for timer & perf counter arch/mips/include/asm/cevt-r4k.h | 19 ------------------- arch/mips/kernel/cevt-r4k.c | 28 ++++++++++++++++++++++++++-- arch/mips/kernel/perf_event_mipsxx.c | 11 ++++++----- arch/mips/kernel/traps.c | 2 -- arch/mips/oprofile/op_model_mipsxx.c | 10 ++++++---- drivers/irqchip/irq-mips-gic.c | 2 +- include/linux/irqchip/mips-gic.h | 6 ++++++ 7 files changed, 45 insertions(+), 33 deletions(-) -- 2.0.5