From: Ahmad Fatoum <a.fatoum@pengutronix.de> To: barebox@lists.infradead.org Cc: ukl@pengutronix.de, "Daniel Brát" <danek.brat@gmail.com>, ore@pengutronix.de, "Ahmad Fatoum" <a.fatoum@pengutronix.de> Subject: [PATCH 09/15] serial: ns16550: rpi: skip baudrate changes for bcm2711 Date: Thu, 5 May 2022 10:01:46 +0200 [thread overview] Message-ID: <20220505080152.1068424-10-a.fatoum@pengutronix.de> (raw) In-Reply-To: <20220505080152.1068424-1-a.fatoum@pengutronix.de> Current state of the driver leads to garbled output after divisor configuration, likely due to wrong clock rate. We so far blissfully ignored proper clock handling in barebox instead relying on firmware and fixed clocks. As the VideoCore firmware can already setup the mini-uart, we can continue wearing the blinders and just disable baudrate changes for the BCM2711 for now to fix console on the Raspberry Pi 4. Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de> --- drivers/serial/serial_ns16550.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c index e936711bf816..82acb76793cb 100644 --- a/drivers/serial/serial_ns16550.c +++ b/drivers/serial/serial_ns16550.c @@ -153,6 +153,12 @@ static void ns16550_write(struct console_device *cdev, uint32_t val, priv->write_reg(priv, val, off << plat->shift); } +static bool ns16550_has_fixed_brg(struct console_device *cdev) +{ + /* We don't yet support baudrate switching on Rpi 4 */ + return IS_ENABLED(CONFIG_MACH_RPI_COMMON) && of_machine_is_compatible("brcm,bcm2711"); +} + /** * @brief Compute the divisor for a baud rate * @@ -250,7 +256,9 @@ static void rpi_init_port(struct console_device *cdev) * (instead of 8 required by the BCM2835 peripheral manual) */ priv->plat.clock = priv->plat.clock*2; - ns16550_serial_init_port(cdev); + + if (!ns16550_has_fixed_brg(cdev)) + ns16550_serial_init_port(cdev); } /*********** Exposed Functions **********************************/ @@ -490,10 +498,12 @@ static int ns16550_probe(struct device_d *dev) cdev->tstc = ns16550_tstc; cdev->putc = ns16550_putc; cdev->getc = ns16550_getc; - cdev->setbrg = ns16550_setbaudrate; cdev->flush = ns16550_flush; cdev->linux_console_name = devtype->linux_console_name; + if (!ns16550_has_fixed_brg(cdev)) + cdev->setbrg = ns16550_setbaudrate; + priv->fcrval = FCRVAL; devtype->init_port(cdev); -- 2.30.2 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox
next prev parent reply other threads:[~2022-05-05 8:03 UTC|newest] Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-05-05 8:01 [PATCH 00/15] ARM: rpi: add basic Raspberry Pi 4 support Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 01/15] PBL: fdt: fix /memory parsing when #address-cells != #size-cells Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 02/15] of: address: fix printing of OF node name in error message Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 03/15] serial: ns16550: rpi: remove ungating now done by proper clk driver Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 04/15] ARM: cpu: prevent recursive dependencies via CPU_SUPPORTS_64BIT_KERNEL Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 05/15] ARM: rpi: add Raspberry Pi 3 64-bit build support Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 06/15] ARM: rpi: rpi3: disallow MMU_EARLY && 64BIT Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 07/15] clk: rpi: add Raspberry Pi 4 support Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 08/15] mci: bcm2835: add bcm2711-emmc2 (Rpi4) support Ahmad Fatoum 2022-05-05 8:01 ` Ahmad Fatoum [this message] 2022-05-05 8:01 ` [PATCH 10/15] clocksource: bcm2835: bump below architeced timer for AArch64 Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 11/15] ARM: rpi: add Raspberry Pi 4 support Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 12/15] ARM: rpi: add debug_ll support for Raspberry Pi 4 Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 13/15] ARM: rpi: add heuristic for skipping detection of SDIO card Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 14/15] doc: bcm283x: add initial docs for Raspberry Pi 4 support Ahmad Fatoum 2022-05-05 8:01 ` [PATCH 15/15] doc: bcm283x: reference newer firmware Ahmad Fatoum 2022-05-06 12:47 ` [PATCH 00/15] ARM: rpi: add basic Raspberry Pi 4 support Ahmad Fatoum
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20220505080152.1068424-10-a.fatoum@pengutronix.de \ --to=a.fatoum@pengutronix.de \ --cc=barebox@lists.infradead.org \ --cc=danek.brat@gmail.com \ --cc=ore@pengutronix.de \ --cc=ukl@pengutronix.de \ --subject='Re: [PATCH 09/15] serial: ns16550: rpi: skip baudrate changes for bcm2711' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox