From patchwork Tue Sep 2 13:00:49 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Thompson X-Patchwork-Id: 4825511 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 134919F3FA for ; Tue, 2 Sep 2014 13:11:31 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 5CCEB201C7 for ; Tue, 2 Sep 2014 13:11:26 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id CAE61201C0 for ; Tue, 2 Sep 2014 13:11:24 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1XOnok-00050i-3J; Tue, 02 Sep 2014 13:08:14 +0000 Received: from mail-wi0-f175.google.com ([209.85.212.175]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1XOnoK-0004Kt-6C for linux-arm-kernel@lists.infradead.org; Tue, 02 Sep 2014 13:07:49 +0000 Received: by mail-wi0-f175.google.com with SMTP id ho1so14224313wib.2 for ; Tue, 02 Sep 2014 06:07:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=H9RsUFiEROjUNvEweGMpwjUwUjq5NcU1LMGizTkIADw=; b=dI+HOvXCtb+Yr1D1MLomhgmHkZXDuUdUA9I2xJfDgwkiES+sd2IK+xh/PxVrrMp7nq vz8t6C2UiAsdYk84aJLnqiAxsvTPoYReEv9UZW18uiFyx1evpg5k3VocfKefSlhGdAnc buogaYrIERcVq+4uNKt4rDBdOPFrsEgpl16e7+7+GCJO67xrSfU8ccyOrd/cE1s6JMj4 c/sVWpxJgpD6pJmHVXuNGcTkL1A1rMD5YXR97bMZTRL2H6aLMfjEtpDDNTHMLu1wko8Q Clo/BKDHQvz6W0rQzZ8H7tF3muBsuWFbf/sRJotLWoKo97lXqMIIjelAknedpdbz53Jz zAkA== X-Gm-Message-State: ALoCoQkuwI0LOQtogEwmRb9S9b89oEQDFC5MTnltvvklvxsv7Kn6rC4U5juBWd5Nhl7wtMOs3RUM X-Received: by 10.194.76.133 with SMTP id k5mr39861012wjw.28.1409663246141; Tue, 02 Sep 2014 06:07:26 -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 ec2sm34928892wib.19.2014.09.02.06.07.24 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 02 Sep 2014 06:07:25 -0700 (PDT) From: Daniel Thompson To: Russell King Subject: [PATCH v11 15/19] serial: amba-pl011: Pass FIQ information to KGDB. Date: Tue, 2 Sep 2014 14:00:49 +0100 Message-Id: <1409662853-29313-16-git-send-email-daniel.thompson@linaro.org> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1409662853-29313-1-git-send-email-daniel.thompson@linaro.org> References: <1408466769-20004-1-git-send-email-daniel.thompson@linaro.org> <1409662853-29313-1-git-send-email-daniel.thompson@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20140902_060748_588289_B3E8B70E X-CRM114-Status: GOOD ( 14.35 ) X-Spam-Score: -0.7 (/) Cc: Daniel Thompson , linaro-kernel@lists.linaro.org, Catalin Marinas , linux-serial@vger.kernel.org, patches@linaro.org, kgdb-bugreport@lists.sourceforge.net, Linus Walleij , Nicolas Pitre , linux-kernel@vger.kernel.org, Frederic Weisbecker , Anton Vorontsov , Greg Kroah-Hartman , Ben Dooks , John Stultz , Fabio Estevam , Colin Cross , Jiri Slaby , kernel-team@android.com, Dave Martin , linux-arm-kernel@lists.infradead.org X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-3.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_NONE, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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