From patchwork Tue Mar 7 15:32:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 13163966 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7624DC6FD1B for ; Tue, 7 Mar 2023 15:33:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230196AbjCGPdJ (ORCPT ); Tue, 7 Mar 2023 10:33:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59664 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231302AbjCGPdA (ORCPT ); Tue, 7 Mar 2023 10:33:00 -0500 Received: from mail-pj1-x102a.google.com (mail-pj1-x102a.google.com [IPv6:2607:f8b0:4864:20::102a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6EBDD7BA2A for ; Tue, 7 Mar 2023 07:32:48 -0800 (PST) Received: by mail-pj1-x102a.google.com with SMTP id x20-20020a17090a8a9400b00233ba727724so1530490pjn.1 for ; Tue, 07 Mar 2023 07:32:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1678203168; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=c3oD+VWh6vfXWKl1YinwYukVpyEX7O+ZCt88fiLI0g4=; b=RKiWq7kI7n6XmLArIWP1AnEyouczbA5z2QjZxwSdk9/YWDVGfDjQfkhiJtdsvXIhHZ 31v5iScnAoLMLvPeOkkr7apGnVHUR3f/0qXKPKEJr1wFwS3r/nEQ0mv/BloFixdhp1XV z+ULops+ColVZDGxpN+z2x9m6T0yFpAE42FHA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678203168; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=c3oD+VWh6vfXWKl1YinwYukVpyEX7O+ZCt88fiLI0g4=; b=MVCxuwF+xz/jCMVw/2vkhRh55Li+zq7dFSRc2exRPBlVlDNeXOOQac/hE9l7av6WrW 7mLCjVPr6XAs3yI3X+i1iwBcsWSF2zMGXwgfaDvndaZKlI15qGm0OUfKXbRefIfjKHSm o1hjLpEmU7DsTUzlMpdFpddQ5iLq8+WgIl6iJ6MnJjlUt+6OObd0TT9cftxPfErXSG5v zfKOMsyw1D60ItZT6NLANrafqHtA0RJ2CJ5EbApSB2nClhDz97JhNWHaA+gTHIk33CU/ kndbJLF7ATAdwv8yzt+jVl9NMO6qI3l6Vgicbcwh0zWiAPkaISGHrQ7vNL3H73qhSfmb vIQQ== X-Gm-Message-State: AO0yUKXo+rb2wPpqgneaIWVJSzZz10qeJN0/Vv+Jb3nAqQsiK2X75ySm E/xb0Gs90hap9oX1tz2tjcNYpA== X-Google-Smtp-Source: AK7set+HF+uHK6o7uusM0NKP4C1wBRuoJGtW9phRDx4xNRHTf+wnthartYKd0Z8578jfS7OlD/PVxQ== X-Received: by 2002:a17:902:e748:b0:19e:82d5:634c with SMTP id p8-20020a170902e74800b0019e82d5634cmr16558648plf.53.1678203167946; Tue, 07 Mar 2023 07:32:47 -0800 (PST) Received: from tictac2.mtv.corp.google.com ([2620:15c:9d:2:2023:7dda:98bb:96dd]) by smtp.gmail.com with ESMTPSA id jy16-20020a17090342d000b0019719f752c5sm8586843plb.59.2023.03.07.07.32.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Mar 2023 07:32:47 -0800 (PST) From: Douglas Anderson To: Bjorn Andersson , Greg Kroah-Hartman Cc: Jiri Slaby , Bartosz Golaszewski , Daniel Thompson , linux-serial@vger.kernel.org, linux-arm-msm@vger.kernel.org, kgdb-bugreport@lists.sourceforge.net, Konrad Dybcio , Douglas Anderson , Andy Gross , linux-kernel@vger.kernel.org Subject: [PATCH 1/3] tty: serial: qcom-geni-serial: Fix kdb/kgdb after port shutdown (again) Date: Tue, 7 Mar 2023 07:32:11 -0800 Message-Id: <20230307073155.1.Iaab0159b8d268060a0e131ebb27125af4750ef99@changeid> X-Mailer: git-send-email 2.40.0.rc0.216.gc4246ad0f0-goog MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org Commit d8aca2f96813 ("tty: serial: qcom-geni-serial: stop operations in progress at shutdown") was basically a straight revert of the commit it claims to fix without any explanation of why the problems talked about in the original patch were no longer relevant. Indeed, commit d8aca2f96813 ("tty: serial: qcom-geni-serial: stop operations in progress at shutdown") re-introduces the same problem that commit e83766334f96 ("tty: serial: qcom_geni_serial: No need to stop tx/rx on UART shutdown") fixed. The problems are very easy to see by simply doing this on a sc7180-based Chromebook: 1. Boot in developer mode with serial console enabled and kdb setup on the serial console. 2. via ssh: stop console-ttyMSM0; echo g > /proc/sysrq-trigger When you do the above you'll see the "kdb" prompt printed on the serial console but be unable to interact with it. Let's fix the problem again by noting that the console port is never configured in DMA mode and thus we don't need to stop things for the console. Fixes: d8aca2f96813 ("tty: serial: qcom-geni-serial: stop operations in progress at shutdown") Signed-off-by: Douglas Anderson Reviewed-by: Bartosz Golaszewski Tested-by: Bartosz Golaszewski Reviewed-by: Johan Hovold --- drivers/tty/serial/qcom_geni_serial.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c index d69592e5e2ec..74a0e074c2de 100644 --- a/drivers/tty/serial/qcom_geni_serial.c +++ b/drivers/tty/serial/qcom_geni_serial.c @@ -1070,8 +1070,10 @@ static int setup_fifos(struct qcom_geni_serial_port *port) static void qcom_geni_serial_shutdown(struct uart_port *uport) { disable_irq(uport->irq); - qcom_geni_serial_stop_tx(uport); - qcom_geni_serial_stop_rx(uport); + if (!uart_console(uport)) { + qcom_geni_serial_stop_tx(uport); + qcom_geni_serial_stop_rx(uport); + } } static int qcom_geni_serial_port_setup(struct uart_port *uport) From patchwork Tue Mar 7 15:32:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 13163967 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9D0FFC6FD1E for ; Tue, 7 Mar 2023 15:33:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230403AbjCGPdL (ORCPT ); Tue, 7 Mar 2023 10:33:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60516 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231316AbjCGPdD (ORCPT ); Tue, 7 Mar 2023 10:33:03 -0500 Received: from mail-pj1-x1030.google.com (mail-pj1-x1030.google.com [IPv6:2607:f8b0:4864:20::1030]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0EC7C7C95E for ; Tue, 7 Mar 2023 07:32:50 -0800 (PST) Received: by mail-pj1-x1030.google.com with SMTP id y2so13559286pjg.3 for ; Tue, 07 Mar 2023 07:32:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1678203169; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ON/hRDAPf2AptDjynSCH9JnA/LFyPWk7i2ryXctmn+Y=; b=k/thYJ/FejPWQY4Da3JnlIuxHSfFvf4jPgd0UIQ0b2XdTdjVTjlWvj9Vx0coE8ZGNf TSjcSYegW3Cq0PnDGKlL2Mfhd98ZxGSjG6XDb53DyE4nz6OldnbCqYZUKhF9YiHygxIC fnVimmDFtsACmxvO0ejshyH9K8EW9IuNupb40= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678203169; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ON/hRDAPf2AptDjynSCH9JnA/LFyPWk7i2ryXctmn+Y=; b=v0MZ/BC2f8/gVqquhqB25yqtO7d37yhtsbI9K7P6PxJYRPdVNZJO9cNKTjE/esgpea bKbwz8sApOFenQSfHWVRa/EqIXhIFemTOFIKS0Z+4eVsOoGdIRmQJDiDT0bkcAgxgqd8 6ZWZYk4DV/0hHFUEFcoVSpSHzztLk5Iw/80bJ+JyRBBJ8YUJxltziTn7nMBG4qaqgwkL bc2Rp36FbgWkeYN4NUmxWM2ZIJ5CTf9SlsGVFIH4Cp35yi7eIqWthT7WUw8x3oaBxD/h VBwojMqk57AVQCic6GYqaxBqfkIIbVf43Sc5tQ7WSYjvbGKUY24XUOKGHT4LF/X0femQ z2EA== X-Gm-Message-State: AO0yUKV8FLZqKmq68aCrbZ/K4zd5g7UrNmtYENGZpnfi8d6cQ8pNfYe4 NAoXHMBLa8HmxRfe5fqoUMWj5Q== X-Google-Smtp-Source: AK7set8Pq0zKle5kvg0bl99RxErDbClwVzYTLcHrnnZKDUGJ1OcT5eP48PVWzvKPbEVb5LoqnGRxAA== X-Received: by 2002:a17:902:7798:b0:19c:bcb1:d8c3 with SMTP id o24-20020a170902779800b0019cbcb1d8c3mr12668737pll.54.1678203169556; Tue, 07 Mar 2023 07:32:49 -0800 (PST) Received: from tictac2.mtv.corp.google.com ([2620:15c:9d:2:2023:7dda:98bb:96dd]) by smtp.gmail.com with ESMTPSA id jy16-20020a17090342d000b0019719f752c5sm8586843plb.59.2023.03.07.07.32.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Mar 2023 07:32:49 -0800 (PST) From: Douglas Anderson To: Bjorn Andersson , Greg Kroah-Hartman Cc: Jiri Slaby , Bartosz Golaszewski , Daniel Thompson , linux-serial@vger.kernel.org, linux-arm-msm@vger.kernel.org, kgdb-bugreport@lists.sourceforge.net, Konrad Dybcio , Douglas Anderson , linux-kernel@vger.kernel.org Subject: [PATCH 2/3] serial: uart_poll_init() should power on the UART Date: Tue, 7 Mar 2023 07:32:12 -0800 Message-Id: <20230307073155.2.I106c39498d8094c6f5e7ada42c7db17aa5c64e48@changeid> X-Mailer: git-send-email 2.40.0.rc0.216.gc4246ad0f0-goog In-Reply-To: <20230307073155.1.Iaab0159b8d268060a0e131ebb27125af4750ef99@changeid> References: <20230307073155.1.Iaab0159b8d268060a0e131ebb27125af4750ef99@changeid> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On Qualcomm devices which use the "geni" serial driver, kdb/kgdb won't be very happy if you use it but the resources of the port haven't been powered on. Today kdb/kgdb rely on someone else powering the port on. This could be the normal kernel console or an agetty running. Let's fix this to explicitly power things on when setting up a polling driver. Signed-off-by: Douglas Anderson --- drivers/tty/serial/serial_core.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c index 2bd32c8ece39..b14b5ed6fff4 100644 --- a/drivers/tty/serial/serial_core.c +++ b/drivers/tty/serial/serial_core.c @@ -2593,6 +2593,7 @@ static int uart_poll_init(struct tty_driver *driver, int line, char *options) { struct uart_driver *drv = driver->driver_state; struct uart_state *state = drv->state + line; + enum uart_pm_state pm_state; struct tty_port *tport; struct uart_port *port; int baud = 9600; @@ -2610,6 +2611,9 @@ static int uart_poll_init(struct tty_driver *driver, int line, char *options) goto out; } + pm_state = state->pm_state; + uart_change_pm(state, UART_PM_STATE_ON); + if (port->ops->poll_init) { /* * We don't set initialized as we only initialized the hw, @@ -2626,6 +2630,8 @@ static int uart_poll_init(struct tty_driver *driver, int line, char *options) console_list_unlock(); } out: + if (ret) + uart_change_pm(state, pm_state); mutex_unlock(&tport->mutex); return ret; } From patchwork Tue Mar 7 15:32:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Anderson X-Patchwork-Id: 13163983 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CD458C678D4 for ; Tue, 7 Mar 2023 15:33:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231383AbjCGPd2 (ORCPT ); Tue, 7 Mar 2023 10:33:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60270 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231298AbjCGPdI (ORCPT ); Tue, 7 Mar 2023 10:33:08 -0500 Received: from mail-pl1-x636.google.com (mail-pl1-x636.google.com [IPv6:2607:f8b0:4864:20::636]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B86DF7B107 for ; Tue, 7 Mar 2023 07:32:51 -0800 (PST) Received: by mail-pl1-x636.google.com with SMTP id a9so14456316plh.11 for ; Tue, 07 Mar 2023 07:32:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; t=1678203171; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=oAaIzsWI+DXQ807RCKvS+zEYcv/H3X+nOpua3UqPND8=; b=c+U7tgYtMbvwsqogjSKc1e3jIlbaa2okhG0YBUKZ+/YpKGgJjzUmnneyowcxRJm6DW 6jRthk68ytVUzM6sh77z9yVlZ5e5B8aQ/MoNxhzWxjPegCa/OgwXJGGSl/BLJRDTvUrz SIWK4/R9Du0ulewEUbp9nuwXkJNeU36Yux5/o= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678203171; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=oAaIzsWI+DXQ807RCKvS+zEYcv/H3X+nOpua3UqPND8=; b=XqAkWDwb0SjtVevlL8L/KQGUhR6LUeiNhiT3Ghh03zj4a0mwjbt5r1JyUg/HebtEGY ga2BCcWx1IExw54haHwjtV05KY/S5QKj3Q0Rrgh1ntLoGKucLEXuoGtA5WxDa6NpkqaI q+eIQIVkpmXds0Uengw/TkBlRg9zdeJ/bNde/XBzwZOumIRjYpDje/rUqKCf65IDuagK /H4e6JqImoAIrm7FHHz2cUI/RVy3MUR+s8AviG5X16rlc7unna1+NJ6amYao1/3fks/+ BnnK4PeIo5HZWuWS60ot2S0VD1IoHNlLGir6MMTu08Xm2kLJg8Q3nkhKV9HyKq5AJS+r 0APw== X-Gm-Message-State: AO0yUKUIah8kKd61fTaIhHgBp/G1zTyd2gFLFGWUBORew/SilF3n+B/X ZrBQX7BpSt6+MvF9Yv9N6mQY5g== X-Google-Smtp-Source: AK7set9YT+h+URl5z9jkarOCmjqbanYlcXm3N10vAqJLY2v22NAZ3Ao9oO5SaoI6/ADUBN1+wljhtQ== X-Received: by 2002:a17:903:1c9:b0:19e:6fd5:f4fa with SMTP id e9-20020a17090301c900b0019e6fd5f4famr15192866plh.69.1678203171195; Tue, 07 Mar 2023 07:32:51 -0800 (PST) Received: from tictac2.mtv.corp.google.com ([2620:15c:9d:2:2023:7dda:98bb:96dd]) by smtp.gmail.com with ESMTPSA id jy16-20020a17090342d000b0019719f752c5sm8586843plb.59.2023.03.07.07.32.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Mar 2023 07:32:50 -0800 (PST) From: Douglas Anderson To: Bjorn Andersson , Greg Kroah-Hartman Cc: Jiri Slaby , Bartosz Golaszewski , Daniel Thompson , linux-serial@vger.kernel.org, linux-arm-msm@vger.kernel.org, kgdb-bugreport@lists.sourceforge.net, Konrad Dybcio , Douglas Anderson , Andy Gross , linux-kernel@vger.kernel.org Subject: [PATCH 3/3] tty: serial: qcom-geni-serial: Add a poll_init() function Date: Tue, 7 Mar 2023 07:32:13 -0800 Message-Id: <20230307073155.3.Ie678853bb101091afe78cc8c22344bf3ff3aed74@changeid> X-Mailer: git-send-email 2.40.0.rc0.216.gc4246ad0f0-goog In-Reply-To: <20230307073155.1.Iaab0159b8d268060a0e131ebb27125af4750ef99@changeid> References: <20230307073155.1.Iaab0159b8d268060a0e131ebb27125af4750ef99@changeid> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On sc7180 Chromebooks, I did the following: * Didn't enable earlycon in the kernel command line. * Didn't enable serial console in the kernel command line. * Didn't enable an agetty or any other client of "/dev/ttyMSM0". * Added "kgdboc=ttyMSM0" to the kernel command line. After I did that, I tried to enter kdb with this command over an ssh session: echo g > /proc/sysrq-trigger When I did that the system just hung. Although I thought I'd tested this scenario before, I couldn't go back and find a time when it was working. Previous testing must have relied on either the UART acting as the kernel console or an agetty running. It turns out to be pretty easy to fix: we can just use qcom_geni_serial_port_setup() as the .poll_init() function. This, together with the patch ("serial: uart_poll_init() should power on the UART"), allows the debugger to work even if there are no other users of the serial port. Signed-off-by: Douglas Anderson --- drivers/tty/serial/qcom_geni_serial.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c index 74a0e074c2de..00752ff783c6 100644 --- a/drivers/tty/serial/qcom_geni_serial.c +++ b/drivers/tty/serial/qcom_geni_serial.c @@ -1534,6 +1534,7 @@ static const struct uart_ops qcom_geni_console_pops = { #ifdef CONFIG_CONSOLE_POLL .poll_get_char = qcom_geni_serial_get_char, .poll_put_char = qcom_geni_serial_poll_put_char, + .poll_init = qcom_geni_serial_port_setup, #endif .pm = qcom_geni_serial_pm, };