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

Commit 3e7c6615 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "serial: msm_geni_serial: Update setup field for hibernation"

parents 2d3c3fad 97b52a4c
Loading
Loading
Loading
Loading
+15 −10
Original line number Diff line number Diff line
@@ -2796,19 +2796,24 @@ static int msm_geni_serial_sys_hib_resume_noirq(struct device *dev)
	struct platform_device *pdev = to_platform_device(dev);
	struct msm_geni_serial_port *port = platform_get_drvdata(pdev);
	struct uart_port *uport = &port->uport;
	unsigned long cfg0, cfg1;

	if (uart_console(uport) &&
	    console_suspend_enabled && uport->suspended) {
	if (uart_console(uport)) {
		uart_resume_port((struct uart_driver *)uport->private_data,
									uport);
		dev_dbg(dev, "%s\n", __func__);
		se_get_packing_config(8, 1, false, &cfg0, &cfg1);
		geni_write_reg_nolog(cfg0, uport->membase,
					SE_GENI_TX_PACKING_CFG0);
		geni_write_reg_nolog(cfg1, uport->membase,
					SE_GENI_TX_PACKING_CFG1);
		disable_irq(uport->irq);
		/*
		 * For hibernation usecase clients for
		 * console UART won't call port setup during restore.
		 * Hence call port setup for console uart.
		 */
		msm_geni_serial_port_setup(uport);
	} else {
		/*
		 * Peripheral register settings are lost during hibernation.
		 * Update setup flag such that port setup happens again
		 * during next session. Clients of HS-UART will close and
		 * open the port during hibernation.
		 */
		port->port_setup = false;
	}
	return 0;
}