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

Commit 8da37d9d authored by Kevin Hilman's avatar Kevin Hilman
Browse files

OMAP: UART: use non-locking versions of hwmod enable/idle functions



Since the UART enable/idle is done during the idle path (with
interrupts disabled), use the non-locking versions of the hwmod
enable/idle functions.

Signed-off-by: default avatarGovindraj.R <govindraj.raja@ti.com>
Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
parent 3244fcd2
Loading
Loading
Loading
Loading
+21 −2
Original line number Diff line number Diff line
@@ -105,10 +105,29 @@ struct omap_uart_state {
static LIST_HEAD(uart_list);
static u8 num_uarts;

/*
 * Since these idle/enable hooks are used in the idle path itself
 * which has interrupts disabled, use the non-locking versions of
 * the hwmod enable/disable functions.
 */
static int uart_idle_hwmod(struct omap_device *od)
{
	_omap_hwmod_idle(od->hwmods[0]);

	return 0;
}

static int uart_enable_hwmod(struct omap_device *od)
{
	_omap_hwmod_enable(od->hwmods[0]);

	return 0;
}

static struct omap_device_pm_latency omap_uart_latency[] = {
	{
		.deactivate_func = omap_device_idle_hwmods,
		.activate_func	 = omap_device_enable_hwmods,
		.deactivate_func = uart_idle_hwmod,
		.activate_func	 = uart_enable_hwmod,
		.flags = OMAP_DEVICE_LATENCY_AUTO_ADJUST,
	},
};