From patchwork Tue Aug 19 16:46:05 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Thompson X-Patchwork-Id: 35639 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-ig0-f198.google.com (mail-ig0-f198.google.com [209.85.213.198]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id DCE88202DD for ; Tue, 19 Aug 2014 16:57:40 +0000 (UTC) Received: by mail-ig0-f198.google.com with SMTP id h18sf30512458igc.5 for ; Tue, 19 Aug 2014 09:57:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:delivered-to:from:to:cc:subject :date:message-id:in-reply-to:references:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :list-post:list-help:list-archive:list-unsubscribe; bh=H9RsUFiEROjUNvEweGMpwjUwUjq5NcU1LMGizTkIADw=; b=aqog5BkNaswUUr9GsZywVIOQaVcXNKspH/5NN1Z065ka6LC18jLTCrcIWbN7rvSHlV kW2vjpaPi+w4FLR15xizqj4gygAYhoRA1a/MTXNxv/FPfg0IOn5+/J+LCMDgQ7alBjDi 5z6Sjy/tVKBCEAmMFhepAUOy41c5uoMJKRp9Nh4Sl8PNLibKpZGMEEJxY6mGN56PQbx4 DMCicsGaUrZpulmPcr4ueZ/9dDDSdJxbs87wg7szZC64ewDpf2N9Hon1Ps0ngLwjOrkP WZUaeJ9mAOTrPF2ROIEJ/sVrAOUyVIhueESWRlizDsIIf6TKHSnlj34HfUPcDTHQOTcc glUg== X-Gm-Message-State: ALoCoQk7b5EAwkUI/pobMQbhztSAbDaGEVdLkIJGdon/BMUbPNnE7wZh7b0ppaHKGYLlk432Af+Z X-Received: by 10.182.91.43 with SMTP id cb11mr23705936obb.13.1408467460262; Tue, 19 Aug 2014 09:57:40 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.33.246 with SMTP id j109ls765744qgj.83.gmail; Tue, 19 Aug 2014 09:57:40 -0700 (PDT) X-Received: by 10.52.62.195 with SMTP id a3mr1186197vds.76.1408467460113; Tue, 19 Aug 2014 09:57:40 -0700 (PDT) Received: from mail-vc0-f172.google.com (mail-vc0-f172.google.com [209.85.220.172]) by mx.google.com with ESMTPS id re13si9159028vcb.8.2014.08.19.09.57.40 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 19 Aug 2014 09:57:40 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.172 as permitted sender) client-ip=209.85.220.172; Received: by mail-vc0-f172.google.com with SMTP id im17so7754095vcb.31 for ; Tue, 19 Aug 2014 09:57:40 -0700 (PDT) X-Received: by 10.220.15.8 with SMTP id i8mr1697830vca.45.1408467460029; Tue, 19 Aug 2014 09:57:40 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patches@linaro.org Received: by 10.221.37.5 with SMTP id tc5csp255134vcb; Tue, 19 Aug 2014 09:57:39 -0700 (PDT) X-Received: by 10.194.203.8 with SMTP id km8mr52387889wjc.51.1408467458790; Tue, 19 Aug 2014 09:57:38 -0700 (PDT) Received: from mail-wi0-f171.google.com (mail-wi0-f171.google.com [209.85.212.171]) by mx.google.com with ESMTPS id gt1si25639wib.67.2014.08.19.09.57.38 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 19 Aug 2014 09:57:38 -0700 (PDT) Received-SPF: pass (google.com: domain of daniel.thompson@linaro.org designates 209.85.212.171 as permitted sender) client-ip=209.85.212.171; Received: by mail-wi0-f171.google.com with SMTP id hi2so5761933wib.4 for ; Tue, 19 Aug 2014 09:57:38 -0700 (PDT) X-Received: by 10.180.101.129 with SMTP id fg1mr8276058wib.20.1408467458033; Tue, 19 Aug 2014 09:57:38 -0700 (PDT) Received: from sundance.lan (cpc4-aztw19-0-0-cust157.18-1.cable.virginm.net. [82.33.25.158]) by mx.google.com with ESMTPSA id gc8sm36225wic.3.2014.08.19.09.57.35 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Aug 2014 09:57:37 -0700 (PDT) From: Daniel Thompson To: Russell King Cc: Daniel Thompson , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kgdb-bugreport@lists.sourceforge.net, patches@linaro.org, linaro-kernel@lists.linaro.org, John Stultz , Anton Vorontsov , Colin Cross , kernel-team@android.com, Rob Herring , Linus Walleij , Ben Dooks , Catalin Marinas , Dave Martin , Fabio Estevam , Frederic Weisbecker , Nicolas Pitre , Greg Kroah-Hartman , Jiri Slaby , linux-serial@vger.kernel.org Subject: [PATCH v10 15/19] serial: amba-pl011: Pass FIQ information to KGDB. Date: Tue, 19 Aug 2014 17:46:05 +0100 Message-Id: <1408466769-20004-16-git-send-email-daniel.thompson@linaro.org> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1408466769-20004-1-git-send-email-daniel.thompson@linaro.org> References: <1408369264-14242-1-git-send-email-daniel.thompson@linaro.org> <1408466769-20004-1-git-send-email-daniel.thompson@linaro.org> X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: daniel.thompson@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.172 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Precedence: list Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org List-ID: X-Google-Group-Id: 836684582541 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Speculatively register a FIQ resource with KGDB. KGDB will only accept it if the kgdb/fiq feature is enabled (both with compile time and runtime switches) and the interrupt controller supports FIQ. By providing this information to KGDB the serial driver offers "permission" for KGDB to route the UART interrupt signal from the drivers own handler to KGDBs FIQ handler (which will eventually use the UART's polled I/O callbacks to interact with the user). This permission also implies the amba-pl011 driver has already unmasked RX interrupts (otherwise the FIQ handler will never trigger). Signed-off-by: Daniel Thompson Cc: Russell King Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: linux-serial@vger.kernel.org --- drivers/tty/serial/amba-pl011.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c index 0b06dcf..63c67b0 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -58,6 +58,7 @@ #include #include #include +#include #define UART_NR 14 @@ -1466,6 +1467,18 @@ static int pl011_hwinit(struct uart_port *port) #ifdef CONFIG_CONSOLE_POLL +static int pl011_poll_init(struct uart_port *port) +{ + int retval = pl011_hwinit(port); + +#ifdef CONFIG_KGDB_FIQ + if (retval == 0) + kgdb_register_fiq(port->irq); +#endif + + return retval; +} + static void pl011_quiesce_irqs(struct uart_port *port) { struct uart_amba_port *uap = @@ -1905,7 +1918,7 @@ static struct uart_ops amba_pl011_pops = { .config_port = pl011_config_port, .verify_port = pl011_verify_port, #ifdef CONFIG_CONSOLE_POLL - .poll_init = pl011_hwinit, + .poll_init = pl011_poll_init, .poll_get_char = pl011_get_poll_char, .poll_put_char = pl011_put_poll_char, #endif