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: 36482 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-ob0-f197.google.com (mail-ob0-f197.google.com [209.85.214.197]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 99DAE203BE for ; Tue, 2 Sep 2014 13:07:32 +0000 (UTC) Received: by mail-ob0-f197.google.com with SMTP id vb8sf38234024obc.8 for ; Tue, 02 Sep 2014 06:07:32 -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=aw9ckeNEaskgh6ptUdQMHH5TpdEVdp8DcMmoz4JHCR+eQ9vTbuNndLAbk4ezBV6P+F pdSHUnH12TLEi44EfPQKrZkhr58AlbkD46ZmAN3Vxn3RJ1Ke9WpiWxTGzhZW3Gvjuh++ ougMvQXnRQYtatPKziddpvPj+nd4USxmGjsV3x/9ucI3Y7WauSRtO8OOvtiXWRXoV/Ci d0tpAjR8ok/DliDpjT8X7jBqmi9HwwgSPP5G1lWTCWbzLEwd6C0udW146SEcTJL4XeiL Rezln3wxOunl1fD0ryY2HhaoYQqqDC7V9zThwWeLYB4UirOBJnBd8r29wygVnELhmyFe 9ORQ== X-Gm-Message-State: ALoCoQlld9/b6LcDyR4MMuGbby6tLybHgjjG7zqjoUkw2pRjQeFIf/hROfTUVt2RVYYG3bp3+EqA X-Received: by 10.42.96.193 with SMTP id k1mr19343963icn.13.1409663252211; Tue, 02 Sep 2014 06:07:32 -0700 (PDT) MIME-Version: 1.0 X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.20.41 with SMTP id 38ls2402264qgi.26.gmail; Tue, 02 Sep 2014 06:07:32 -0700 (PDT) X-Received: by 10.220.189.3 with SMTP id dc3mr38068vcb.64.1409663252084; Tue, 02 Sep 2014 06:07:32 -0700 (PDT) Received: from mail-vc0-f175.google.com (mail-vc0-f175.google.com [209.85.220.175]) by mx.google.com with ESMTPS id c6si2226699vdg.52.2014.09.02.06.07.32 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 02 Sep 2014 06:07:32 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.175 as permitted sender) client-ip=209.85.220.175; Received: by mail-vc0-f175.google.com with SMTP id lf12so6795106vcb.6 for ; Tue, 02 Sep 2014 06:07:32 -0700 (PDT) X-Received: by 10.221.61.5 with SMTP id wu5mr29870945vcb.13.1409663252020; Tue, 02 Sep 2014 06:07:32 -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.45.67 with SMTP id uj3csp524805vcb; Tue, 2 Sep 2014 06:07:31 -0700 (PDT) X-Received: by 10.180.21.141 with SMTP id v13mr28734704wie.48.1409663249850; Tue, 02 Sep 2014 06:07:29 -0700 (PDT) Received: from mail-we0-f181.google.com (mail-we0-f181.google.com [74.125.82.181]) by mx.google.com with ESMTPS id a2si14600717wiv.49.2014.09.02.06.07.26 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 02 Sep 2014 06:07:26 -0700 (PDT) Received-SPF: pass (google.com: domain of daniel.thompson@linaro.org designates 74.125.82.181 as permitted sender) client-ip=74.125.82.181; Received: by mail-we0-f181.google.com with SMTP id x48so6941116wes.40 for ; Tue, 02 Sep 2014 06:07:26 -0700 (PDT) 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 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 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-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.175 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