Loading drivers/bus/ti-sysc.c +46 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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; } Loading Loading
drivers/bus/ti-sysc.c +46 −0 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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; } Loading