|
@@ -108,8 +108,14 @@ static void omap_uart_set_noidle(struct platform_device *pdev)
|
|
static void omap_uart_set_smartidle(struct platform_device *pdev)
|
|
static void omap_uart_set_smartidle(struct platform_device *pdev)
|
|
{
|
|
{
|
|
struct omap_device *od = to_omap_device(pdev);
|
|
struct omap_device *od = to_omap_device(pdev);
|
|
|
|
+ u8 idlemode;
|
|
|
|
|
|
- omap_hwmod_set_slave_idlemode(od->hwmods[0], HWMOD_IDLEMODE_SMART);
|
|
|
|
|
|
+ if (od->hwmods[0]->class->sysc->idlemodes & SIDLE_SMART_WKUP)
|
|
|
|
+ idlemode = HWMOD_IDLEMODE_SMART_WKUP;
|
|
|
|
+ else
|
|
|
|
+ idlemode = HWMOD_IDLEMODE_SMART;
|
|
|
|
+
|
|
|
|
+ omap_hwmod_set_slave_idlemode(od->hwmods[0], idlemode);
|
|
}
|
|
}
|
|
|
|
|
|
#else
|
|
#else
|