From patchwork Tue Apr 1 09:06:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "A. Sverdlin" X-Patchwork-Id: 14034515 Received: from mta-64-228.siemens.flowmailer.net (mta-64-228.siemens.flowmailer.net [185.136.64.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C8AE1EBA16 for ; Tue, 1 Apr 2025 09:06:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.136.64.228 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743498414; cv=none; b=XlTc1tBO/6ojaEFzfKi/hZIyae/6qE652EgpOPkqOo+FB3FWLCZIf4OdueOBaXuEfV1O7LNivwoVcR9BYJpGymxSBkojNUvAp9aA5HP8Ac6O8e7ZQPLg7OfcQbZQZXmVtoChv3KMyhJwiDyMd6xdwgB0CZz+heDx09Dcc68XxFg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743498414; c=relaxed/simple; bh=kKr/tIt2LCEu9owDBfn3bQojzZ0WnrYrGhqQqPDytWQ=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=W2hk/M7Tqy4fBHuPVLMeZ9NiG3rPLgQsBs32M/D2p8gV94wtsHumD/UUKwwflNvyeGwA2kiAp5Y/oNrU6oPIdYNLpxqNETzAcClfQ1Vz8i6jgqYUkQn0+7uu8QM24HMBDxZRdjwceo95I1pAgiyAzCBa/DoojOn/8su73tcFODw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com; spf=pass smtp.mailfrom=rts-flowmailer.siemens.com; dkim=pass (2048-bit key) header.d=siemens.com header.i=alexander.sverdlin@siemens.com header.b=VHSoDJGB; arc=none smtp.client-ip=185.136.64.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=siemens.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rts-flowmailer.siemens.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=siemens.com header.i=alexander.sverdlin@siemens.com header.b="VHSoDJGB" Received: by mta-64-228.siemens.flowmailer.net with ESMTPSA id 20250401090647ab5e6a3b56d5213658 for ; Tue, 01 Apr 2025 11:06:47 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm2; d=siemens.com; i=alexander.sverdlin@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc; bh=WL92Zqa9pFjA8RNRarusWwAsiJfwqAlo3KLnH3r3wI0=; b=VHSoDJGBuAminTb59v2NFyXwPHMG5YDp8mtNd9BQeOTZqNfoqD7VgqHHN52gy0fIucDJrE E/UzAfGa4PDpaksnwnZ2DjnDpL8Ix6n0xzD0azh/fzqz0nvxybrQpQ9sTqGrPkld1f26SxhZ yXV1i2g/toTcBgqw0JEK72qxxuSRQJtma8zMyt9Xx0D9aVj7OCKbP/1oLyzFBXgBjKZ5mN3W vHrFwV4v2k0a0naQb09w90WiYxRqMQT+jk4Grt3ilbwWdd/9vJbNieWGvdii+dtkLzVTt6Jn jzZN3d2nt5/evXvGbQ1Wglq0LIY6pdtDOX6L1z1YQ115f0YEBjr7IMWw==; From: "A. Sverdlin" To: Tony Lindgren , linux-omap@vger.kernel.org Cc: Alexander Sverdlin , Aaro Koskinen , Andreas Kemnade , Kevin Hilman , Roger Quadros , linux-kernel@vger.kernel.org Subject: [PATCH v2] Revert "bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first" Date: Tue, 1 Apr 2025 11:06:34 +0200 Message-ID: <20250401090643.2776793-1-alexander.sverdlin@siemens.com> Precedence: bulk X-Mailing-List: linux-omap@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-456497:519-21489:flowmailer From: Alexander Sverdlin This reverts commit 4700a00755fb5a4bb5109128297d6fd2d1272ee6. 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 (4700a00755fb commit's rationale). After revert: [ 9.006816] IP-Config: Complete: [ 9.010058] device=lan0, ... Tested-by: Andreas Kemnade # GTA04, Panda, BT200 Reviewed-by: Tony Lindgren Signed-off-by: Alexander Sverdlin --- v2: Massaged the commit message. drivers/bus/ti-sysc.c | 49 ------------------------------------------- 1 file changed, 49 deletions(-) diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c index f67b927ae4caa..e5c02e950f2c1 100644 --- a/drivers/bus/ti-sysc.c +++ b/drivers/bus/ti-sysc.c @@ -677,51 +677,6 @@ static int sysc_parse_and_check_child_range(struct sysc *ddata) return 0; } -/* Interconnect instances to probe before l4_per instances */ -static struct resource early_bus_ranges[] = { - /* am3/4 l4_wkup */ - { .start = 0x44c00000, .end = 0x44c00000 + 0x300000, }, - /* omap4/5 and dra7 l4_cfg */ - { .start = 0x4a000000, .end = 0x4a000000 + 0x300000, }, - /* omap4 l4_wkup */ - { .start = 0x4a300000, .end = 0x4a300000 + 0x30000, }, - /* omap5 and dra7 l4_wkup without dra7 dcan segment */ - { .start = 0x4ae00000, .end = 0x4ae00000 + 0x30000, }, -}; - -static atomic_t sysc_defer = ATOMIC_INIT(10); - -/** - * sysc_defer_non_critical - defer non_critical interconnect probing - * @ddata: device driver data - * - * We want to probe l4_cfg and l4_wkup interconnect instances before any - * l4_per instances as l4_per instances depend on resources on l4_cfg and - * l4_wkup interconnects. - */ -static int sysc_defer_non_critical(struct sysc *ddata) -{ - struct resource *res; - int i; - - if (!atomic_read(&sysc_defer)) - return 0; - - for (i = 0; i < ARRAY_SIZE(early_bus_ranges); i++) { - res = &early_bus_ranges[i]; - if (ddata->module_pa >= res->start && - ddata->module_pa <= res->end) { - atomic_set(&sysc_defer, 0); - - return 0; - } - } - - atomic_dec_if_positive(&sysc_defer); - - return -EPROBE_DEFER; -} - static struct device_node *stdout_path; static void sysc_init_stdout_path(struct sysc *ddata) @@ -947,10 +902,6 @@ static int sysc_map_and_check_registers(struct sysc *ddata) if (error) return error; - error = sysc_defer_non_critical(ddata); - if (error) - return error; - sysc_check_children(ddata); if (!of_property_present(np, "reg"))