[PATCH v2 2/4] of: support of_ensure_probed for top-level machine device

Ahmad Fatoum a.fatoum at pengutronix.de
Mon Mar 13 07:43:30 PDT 2023


Hello Michael,

On 13.03.23 08:05, Michael Riesch wrote:
> I can sketch a patch that triggers this behavior on a Radxa ROCK3.
> Similar to my board code, this happens in the scope of a board probe
> function. Please find the sketch below.
> 
> Basing on the current next:

[snip]

I see now how this could not work. I dropped the commit introducing
the breakage and redid what I wanted to achieve differently.

Thanks for reporting and sorry for the hassle,
Ahmad

> 
> Board: Radxa ROCK3 Model A
> deep-probe: supported due to radxa,rock3a
> board-rock3 machine: of_device_ensure_probed_by_alias returned -19
> 
> With 2b46c9df976c ("of: support of_ensure_probed for top-level machine
> device") reverted:
> 
> Board: Radxa ROCK3 Model A
> deep-probe: supported due to radxa,rock3a
> rk808 rk8090: chip id: 0x8090
> rockchip_saradc fe720000.saradc at fe720000.of: registered as saradc
> board-rock3 machine: of_device_ensure_probed_by_alias returned 0
> 
> Thanks and best regards,
> Michael
> 
>> [...]
> ---- %< snip ----------------------------------------------------
> 
> diff --git a/arch/arm/boards/radxa-rock3/board.c
> b/arch/arm/boards/radxa-rock3/board.c
> index 4b4e0613d3..771777d4ea 100644
> --- a/arch/arm/boards/radxa-rock3/board.c
> +++ b/arch/arm/boards/radxa-rock3/board.c
> @@ -15,6 +15,7 @@ static int rock3_probe(struct device *dev)
>         enum bootsource bootsource = bootsource_get();
>         int instance = bootsource_get_instance();
>         const struct rock3_model *model;
> +       int ret;
> 
>         model = device_get_match_data(dev);
> 
> @@ -30,6 +31,9 @@ static int rock3_probe(struct device *dev)
>                                 "/dev/mmc1");
>         rk3568_bbu_mmc_register("sd", 0, "/dev/mmc0");
> 
> +       ret = of_device_ensure_probed_by_alias("saradc");
> +       dev_info(dev, "of_device_ensure_probed_by_alias returned %d\n",
> ret);
> +
>         return 0;
>  }
> 
> diff --git a/arch/arm/dts/rk3568-rock-3a.dts
> b/arch/arm/dts/rk3568-rock-3a.dts
> index 25a0c05737..b8dc46c706 100644
> --- a/arch/arm/dts/rk3568-rock-3a.dts
> +++ b/arch/arm/dts/rk3568-rock-3a.dts
> @@ -6,6 +6,10 @@
>  #include "rk356x.dtsi"
> 
>  / {
> +       aliases {
> +               saradc = &saradc;
> +       };
> +
>         chosen: chosen {
>                 environment-sd {
>                         compatible = "barebox,environment";
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |




More information about the barebox mailing list