Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 08f86b3e authored by Govindraj.R's avatar Govindraj.R Committed by Kevin Hilman
Browse files

ARM: OMAP2+: UART: Avoid uart idling on suspend for no_console_suspend usecase



If no_console_suspend is used we have prevent uart idling during suspend
to provide debug prints.

Power domain hooks can idle uarts if left enabled during system wide suspend
so re-use the omap_device_disable_idle_on_suspend API's to ensure console_uart
is not idled during suspend.

omap_device_disable_idle_on_suspend API was used on all uarts since the uart
driver was not runtime adapted, now with runtime adaptation we can re-use this
API only for no_console_suspend use cases.

Signed-off-by: default avatarGovindraj.R <govindraj.raja@ti.com>
Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
parent 8612bd22
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ struct omap_uart_state {
static LIST_HEAD(uart_list);
static u8 num_uarts;
static u8 console_uart_id = -1;
static u8 no_console_suspend;

#define DEFAULT_RXDMA_POLLRATE		1	/* RX DMA polling rate (us) */
#define DEFAULT_RXDMA_BUFSIZE		4096	/* RX DMA buffer size */
@@ -298,6 +299,10 @@ static int __init omap_serial_early_init(void)

		if (cmdline_find_option(uart_name)) {
			console_uart_id = uart->num;

			if (cmdline_find_option("no_console_suspend"))
				no_console_suspend = true;

			/*
			 * omap-uart can be used for earlyprintk logs
			 * So if omap-uart is used as console then prevent
@@ -385,7 +390,9 @@ void __init omap_serial_init_port(struct omap_board_data *bdata,
	WARN(IS_ERR(pdev), "Could not build omap_device for %s: %s.\n",
	     name, oh->name);

	if ((console_uart_id == bdata->id) && no_console_suspend)
		omap_device_disable_idle_on_suspend(pdev);

	oh->mux = omap_hwmod_mux_init(bdata->pads, bdata->pads_cnt);

	uart->pdev = pdev;