Skip to content

Commit

Permalink
bus: ti-sysc: Handle stdout-path for debug console
Browse files Browse the repository at this point in the history
If we have stdout-path specified for earlycon, we must prevent
the debug console from idling until runtime PM kicks in.

Signed-off-by: Tony Lindgren <tony@atomide.com>
  • Loading branch information
tmlind committed Feb 26, 2018
1 parent 62020f2 commit 3bb37c8
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions drivers/bus/ti-sysc.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,50 @@ static int sysc_parse_and_check_child_range(struct sysc *ddata)
return 0;
}

static struct device_node *stdout_path;

static void sysc_init_stdout_path(struct sysc *ddata)
{
struct device_node *np = NULL;
const char *uart;

if (IS_ERR(stdout_path))
return;

if (stdout_path)
return;

np = of_find_node_by_path("/chosen");
if (!np)
goto err;

uart = of_get_property(np, "stdout-path", NULL);
if (!uart)
goto err;

np = of_find_node_by_path(uart);
if (!np)
goto err;

stdout_path = np;

return;

err:
stdout_path = ERR_PTR(-ENODEV);
}

static void sysc_check_quirk_stdout(struct sysc *ddata,
struct device_node *np)
{
sysc_init_stdout_path(ddata);
if (np != stdout_path)
return;

ddata->cfg.quirks |= SYSC_QUIRK_NO_IDLE_ON_INIT |
SYSC_QUIRK_NO_RESET_ON_INIT;
}

/**
* sysc_check_one_child - check child configuration
* @ddata: device driver data
Expand All @@ -224,6 +268,8 @@ static int sysc_check_one_child(struct sysc *ddata,
if (name)
dev_warn(ddata->dev, "really a child ti,hwmods property?");

sysc_check_quirk_stdout(ddata, np);

return 0;
}

Expand Down

0 comments on commit 3bb37c8

Please sign in to comment.