From nobody Sat Feb 7 17:09:37 2026 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D13572A1BA for ; Sun, 1 Feb 2026 04:18:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769919507; cv=none; b=cWJvzsHl0NLSODU6VI1zssHlwiW/MDlgsDVfFh5MxChN4sN6jMZIw61wEuHVfAxzFQm0bFLrN8MIICPLJz8O0lNJMNeahPVX0S7q5+67Jx0DQpy4lAZ9Daq8T/LTHqcOPgD0TDWGU7icLOhr1bFpzR4/phKl+7VYHmASkcrWtZ0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769919507; c=relaxed/simple; bh=/snMkqA7Et8ZH1WOjyXfR67tFXsbjARBTR2KV0MW/bw=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=GOrLyonsabCFaS0D1UadzIjyER8NKzhG7VKMRP24jwe4F+zMT7iKJQCrRh6DaYPhz2wrHAmrk6yGGrGt0ABMjz+T/9oh9j3cm3YFNxj/oTEapI1hao4J79o9mfo3mUR6qDr8t/NYRca5fsWLiE9TRLIyXdbAflrpj665l/bk81g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=j9RVD0Tw; arc=none smtp.client-ip=209.85.214.180 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="j9RVD0Tw" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2a7ebd8e780so1799365ad.3 for ; Sat, 31 Jan 2026 20:18:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1769919495; x=1770524295; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Zvvl3iAKbAgCYx4gt1xiD+2SkCOVEBm5+O7+NxrV/0w=; b=j9RVD0Tw9Ty1dscCIhKG5qcgUVzPjfrjctDz4h6pHgTaYumrGh0GKgqveeaBlIzSMM GXO8971wsCKCsdoBSmh8of+TsNrqWWIyUkAVEeejimbjg4Sk+CRhDoLRiPlagfa5Igmb i3ZXmCFVyGvvY7mkRxzk7jpN99NAHeqNWKipatElM3pLm5dLMJuKm1rL1WLWuNcRcTJL etx7pmgSXnX4umLgkPAlNb9fTgq0mSUxZbNoDOmRMN4m3p2DJ5Q50NDBjHk2WHtq2byC ABmlgmFxba5M+wxi0XCwA1FyTp9tR8HQy13ixeWWwI3i4ZEEEWU5X2icwLvpYlu6Euym 9ZeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769919495; x=1770524295; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Zvvl3iAKbAgCYx4gt1xiD+2SkCOVEBm5+O7+NxrV/0w=; b=Nz5UOs3sP9OeTScYHDN5eK52yp8KrZqA7QT2vNnmRpCIKySt/lGQQaVgFWqWlK0Fl5 twOn62ppkA81fFInR4m7iPIx1EHTfvlMpFK8QjYyQ+3ZEhDyrjs6PGU4q6tm/dNw50ss ksH/k8cy6NBC6ftUeoWP2Yfo0nzIYBE5938vjOrIJd9rb2s1DWRAqvZj9xwuyt+vSm2m IC8q72cca3awGBlCe4t5IJ3RPeujQ2o8kecH9GOSHVIajzF2ilLMgLf00JEZ0XdHh44j MTqH9EXq3DI6X3IP16O48x7nWmHTC41Br+ovxWFQ3zwiL9jC1DTCDPE3JzJTP9b8Ug1p XYIg== X-Forwarded-Encrypted: i=1; AJvYcCVySVLOWkYhFRAWSuhR5iZPx91IA/Wkqa4Giv4jz/w4sBEL/Df9VWeLVOFeSk/halRHnqQdVbTuq2xYxOs=@vger.kernel.org X-Gm-Message-State: AOJu0YwI4i4ONJq06nTS3qDMFu0wjiRNTUkBY1LuYakIftwc8HuKD4G8 hOhRkKXfcwG9o7U3Iwb8Oa6QY7uh15WJieDmjSdaSPS5iN07oY3vSL1l X-Gm-Gg: AZuq6aJQHwZOM/SUW28oR0dewA7pI5Z2cIaU+HPWj75inytzb+liIInxvVh2TtQbi9Y 0OsgBFq426norIEcTpWk/9o48E9e9O0QjiYPOWId8+5qaeqiEfWzJNF4mud0VvNfqqb3y1T5AKx F5SdvJa4zXzlhxiYWnq6fMoqTeCPSHcgabUfURuyODPlzJvUXPHZWPA+lGQQbt/ibDKnjN3Dg7p Bvc0Qp5PgOfacmGYYC6J4GKUq22WQx1pv2II+ttPpsJ8t0nKmGKcXiV+xnOk38M6/koB44UiR9b s3ZEwcwMBGd7MjkIdRScfpCbHYm4Vc3kH+2/7xNjRBcKLSf8NZgJVM63wGQXvVO8l/wvfH4YOCZ YDUiaJr7V5El2w6nV4sMWdIFK3V3nwfBc1KgnvNNP/zpmgyqb60kgkbl2/mNnMXKmJQnleaBQtI jo2fv6MKhT1wz6S+GnaPuQ93xGdgazv/KtzSQyRGUv1Z+1jcwj5rXdDaa0Gbm6xQ== X-Received: by 2002:a17:903:15ce:b0:2a0:f0c7:9998 with SMTP id d9443c01a7336-2a8d9949670mr62371115ad.6.1769919494983; Sat, 31 Jan 2026 20:18:14 -0800 (PST) Received: from syu-OptiPlex-3010.lan ([2001:569:5a4c:2100:4f8c:995d:2e16:10c7]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2a88b41390bsm109628635ad.23.2026.01.31.20.18.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Jan 2026 20:18:14 -0800 (PST) From: Sheng Yu To: gregkh@linuxfoundation.org Cc: jirislaby@kernel.org, linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, Sheng Yu Subject: [PATCH] serial: 8250: add CONFIG_SERIAL_8250_PROBE_BAUD option Date: Sat, 31 Jan 2026 20:18:11 -0800 Message-ID: <20260201041811.520010-1-yushenglive@gmail.com> X-Mailer: git-send-email 2.51.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Currently, the 8250 driver defaults to 9600 baud if no console options are provided via the command line. This can result in garbled output if the firmware or bootloader has already initialized the UART to a different speed. Introduce CONFIG_SERIAL_8250_PROBE_BAUD. When enabled, the driver will attempt to read the current baud rate from the hardware registers if no options are specified, rather than forcing the 9600 default. Signed-off-by: Sheng Yu --- drivers/tty/serial/8250/8250_core.c | 2 +- drivers/tty/serial/8250/8250_port.c | 6 +++++- drivers/tty/serial/8250/Kconfig | 12 ++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/= 8250_core.c index 0e81f78c6063..c11b19921a1f 100644 --- a/drivers/tty/serial/8250/8250_core.c +++ b/drivers/tty/serial/8250/8250_core.c @@ -427,7 +427,7 @@ static int univ8250_console_setup(struct console *co, c= har *options) /* link port to console */ uart_port_set_cons(port, co); =20 - retval =3D serial8250_console_setup(port, options, false); + retval =3D serial8250_console_setup(port, options, IS_ENABLED(CONFIG_SERI= AL_8250_PROBE_BAUD)); if (retval !=3D 0) uart_port_set_cons(port, NULL); return retval; diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/= 8250_port.c index 719faf92aa8a..dbc0ef56f995 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -3399,8 +3399,12 @@ int serial8250_console_setup(struct uart_port *port,= char *options, bool probe) =20 if (options) uart_parse_options(options, &baud, &parity, &bits, &flow); - else if (probe) + else if (probe) { baud =3D probe_baud(port); + pr_info("console [%s%d] probed baud rate: %d\n", + port->cons->name, port->cons->index, baud); + + } =20 ret =3D uart_set_options(port, port->cons, baud, parity, bits, flow); if (ret) diff --git a/drivers/tty/serial/8250/Kconfig b/drivers/tty/serial/8250/Kcon= fig index c488ff6f2865..bee6a82023d4 100644 --- a/drivers/tty/serial/8250/Kconfig +++ b/drivers/tty/serial/8250/Kconfig @@ -596,3 +596,15 @@ config SERIAL_OF_PLATFORM are probed through devicetree, including Open Firmware based PowerPC systems and embedded systems on architectures using the flattened device tree format. + +config SERIAL_8250_PROBE_BAUD + bool "Probe baud rate if console options are missing" + depends on SERIAL_8250 + help + If the "console=3D" command line parameter is missing options (e.g., + "console=3DttyS0" instead of "console=3DttyS0,115200n8"), this option + allows the kernel to probe the baud rate from hardware instead of + defaulting to 9600. + + If a baud rate is explicitly provided in the options, that value + is always respected. --=20 2.51.0