Skip to content

Commit 3630585

Browse files
ccpalexkhilman
authored andcommitted
Revert "bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first"
This reverts commit 4700a00. It breaks target-module@2b300050 ("ti,sysc-omap2") probe on AM62x in a case when minimally-configured system tries to network-boot: [ 6.888776] probe of 2b300050.target-module returned 517 after 258 usecs [ 17.129637] probe of 2b300050.target-module returned 517 after 708 usecs [ 17.137397] platform 2b300050.target-module: deferred probe pending: (reason unknown) [ 26.878471] Waiting up to 100 more seconds for network. There are minimal configurations possible when the deferred device is not being probed any more (because everything else has been successfully probed) and deferral lists are not processed any more. Stable mmc enumeration can be achieved by filling /aliases node properly (4700a00 commit's rationale). After revert: [ 9.006816] IP-Config: Complete: [ 9.010058] device=lan0, ... Tested-by: Andreas Kemnade <[email protected]> # GTA04, Panda, BT200 Reviewed-by: Tony Lindgren <[email protected]> Signed-off-by: Alexander Sverdlin <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Kevin Hilman <[email protected]>
1 parent 0af2f6b commit 3630585

File tree

1 file changed

+0
-49
lines changed

1 file changed

+0
-49
lines changed

drivers/bus/ti-sysc.c

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -677,51 +677,6 @@ static int sysc_parse_and_check_child_range(struct sysc *ddata)
677677
return 0;
678678
}
679679

680-
/* Interconnect instances to probe before l4_per instances */
681-
static struct resource early_bus_ranges[] = {
682-
/* am3/4 l4_wkup */
683-
{ .start = 0x44c00000, .end = 0x44c00000 + 0x300000, },
684-
/* omap4/5 and dra7 l4_cfg */
685-
{ .start = 0x4a000000, .end = 0x4a000000 + 0x300000, },
686-
/* omap4 l4_wkup */
687-
{ .start = 0x4a300000, .end = 0x4a300000 + 0x30000, },
688-
/* omap5 and dra7 l4_wkup without dra7 dcan segment */
689-
{ .start = 0x4ae00000, .end = 0x4ae00000 + 0x30000, },
690-
};
691-
692-
static atomic_t sysc_defer = ATOMIC_INIT(10);
693-
694-
/**
695-
* sysc_defer_non_critical - defer non_critical interconnect probing
696-
* @ddata: device driver data
697-
*
698-
* We want to probe l4_cfg and l4_wkup interconnect instances before any
699-
* l4_per instances as l4_per instances depend on resources on l4_cfg and
700-
* l4_wkup interconnects.
701-
*/
702-
static int sysc_defer_non_critical(struct sysc *ddata)
703-
{
704-
struct resource *res;
705-
int i;
706-
707-
if (!atomic_read(&sysc_defer))
708-
return 0;
709-
710-
for (i = 0; i < ARRAY_SIZE(early_bus_ranges); i++) {
711-
res = &early_bus_ranges[i];
712-
if (ddata->module_pa >= res->start &&
713-
ddata->module_pa <= res->end) {
714-
atomic_set(&sysc_defer, 0);
715-
716-
return 0;
717-
}
718-
}
719-
720-
atomic_dec_if_positive(&sysc_defer);
721-
722-
return -EPROBE_DEFER;
723-
}
724-
725680
static struct device_node *stdout_path;
726681

727682
static void sysc_init_stdout_path(struct sysc *ddata)
@@ -947,10 +902,6 @@ static int sysc_map_and_check_registers(struct sysc *ddata)
947902
if (error)
948903
return error;
949904

950-
error = sysc_defer_non_critical(ddata);
951-
if (error)
952-
return error;
953-
954905
sysc_check_children(ddata);
955906

956907
if (!of_property_present(np, "reg"))

0 commit comments

Comments
 (0)