mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Ahmad Fatoum <a.fatoum@pengutronix.de>
To: barebox@lists.infradead.org
Cc: "Leif Middelschulte" <leif.middelschulte@klsmartin.com>,
	uol@pengutronix.de, ore@pengutronix.de,
	"Søren Andersen" <san@skov.dk>,
	"Ahmad Fatoum" <a.fatoum@pengutronix.de>
Subject: [PATCH 4/6] ARM: i.MX6: skov: fix LVDS deep probe
Date: Thu, 22 Dec 2022 15:11:59 +0100	[thread overview]
Message-ID: <20221222141201.3087192-5-a.fatoum@pengutronix.de> (raw)
In-Reply-To: <20221222141201.3087192-1-a.fatoum@pengutronix.de>

With deep probe, barebox will have registered most drivers by the time
it walks the device tree and will then keep probing devices on demand.

This simplifies the common case of devices having dependencies on each
other, but on the other hand expects board code to be deep probe aware.

The Skov board code already takes care to explicitly probe the GPIO
controllers it requires, but it also optionally enables and registers
devices that were initially disabled in the device tree.

It's paramount that devices are only registered _after_ the relevant
device tree parts are rewritten. This was currently not accounted for,
which led to LDB device being probed before its child lvds-channel node
was enabled: We thus ended up with a LDB device, what the driver
couldn't do anything with:

  mode_name: invalid:0 (type: enum)

Fixes: 31d2289da2f3 ("ARM: boards: skov-imx6: start using deep-probe")
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
---
 arch/arm/boards/skov-imx6/board.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boards/skov-imx6/board.c b/arch/arm/boards/skov-imx6/board.c
index 7ddc6e937b0b..8f4d7efe4278 100644
--- a/arch/arm/boards/skov-imx6/board.c
+++ b/arch/arm/boards/skov-imx6/board.c
@@ -474,14 +474,15 @@ static void skov_init_ldb(void)
 		return;
 	}
 
-	of_device_enable_and_register(ldb);
-
-	/* ... as well as its channel 0 */
+	/* First enable channel 0, prior to enabling parent */
 	chan = of_find_node_by_name_address(ldb, "lvds-channel@0");
 	if (chan)
 		of_device_enable(chan);
 	else
 		dev_err(skov_priv->dev, "Cannot find \"lvds-channel@0\" node\n");
+
+	/* Now probe will see the expected device tree */
+	of_device_enable_and_register(ldb);
 }
 
 /*
-- 
2.30.2




  parent reply	other threads:[~2022-12-22 14:31 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-22 14:11 [PATCH 0/6] ARM: i.MX6: Fix LVDS splash on skov and some others Ahmad Fatoum
2022-12-22 14:11 ` [PATCH 1/6] clk: imx: set CLK_SET_RATE_NO_REPARENT for all muxes Ahmad Fatoum
2022-12-23  9:11   ` Marco Felsch
2022-12-22 14:11 ` [PATCH 2/6] clk: mux: forward round/set rate to parent if CLK_SET_RATE_PARENT Ahmad Fatoum
2022-12-22 14:11 ` [PATCH 3/6] ARM: i.MX6: skov: refactor LVDS/parallel device tree fixups Ahmad Fatoum
2022-12-23  9:14   ` Marco Felsch
2022-12-22 14:11 ` Ahmad Fatoum [this message]
2022-12-23  9:08   ` [PATCH 4/6] ARM: i.MX6: skov: fix LVDS deep probe Marco Felsch
2022-12-22 14:12 ` [PATCH 5/6] video: edid: print debug message on EDID read out error Ahmad Fatoum
2022-12-23  9:06   ` Marco Felsch
2022-12-22 14:12 ` [PATCH 6/6] ARM: configs: imx_v7_defconfig: enable some useful options Ahmad Fatoum
2022-12-23  9:10   ` Marco Felsch
2023-01-04 12:01     ` Sascha Hauer
2023-01-04 12:04       ` Ahmad Fatoum
2023-01-04 12:07         ` Sascha Hauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20221222141201.3087192-5-a.fatoum@pengutronix.de \
    --to=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --cc=leif.middelschulte@klsmartin.com \
    --cc=ore@pengutronix.de \
    --cc=san@skov.dk \
    --cc=uol@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox