Hi Michal, > -----Original Message----- > From: Michal Simek <[email protected]> > Sent: Friday, September 11, 2020 2:52 PM > To: Arnd Bergmann <[email protected]>; Michal Simek <[email protected]> > Cc: Amit Sunil Dhamne <[email protected]>; Ard Biesheuvel > <[email protected]>; Ingo Molnar <[email protected]>; gregkh > <[email protected]>; Matt Fleming <[email protected]>; > Sudeep Holla <[email protected]>; Heiner Kallweit > <[email protected]>; Kees Cook <[email protected]>; Dmitry > Torokhov <[email protected]>; Rajan Vaja <[email protected]>; > Linux ARM <[email protected]>; linux- > [email protected]; Tejas Patel <[email protected]>; Jolly Shah > <[email protected]>; Rajan Vaja <[email protected]> > Subject: Re: [PATCH v2] drivers: soc: xilinx: Call InitFinalize from > late_initcall_sync instead of probe > > > > On 10. 09. 20 10:35, Arnd Bergmann wrote: > > On Thu, Sep 10, 2020 at 8:50 AM Michal Simek <[email protected]> > wrote: > >>> @@ -246,6 +245,23 @@ static int zynqmp_pm_remove(struct > platform_device *pdev) > >>> return 0; > >>> } > >>> > >>> +static int __init do_init_finalize(void) { > >>> + struct device_node *np; > >>> + > >>> + np = of_find_compatible_node(NULL, NULL, "xlnx,zynqmp"); > >>> + if (!np) { > >>> + np = of_find_compatible_node(NULL, NULL, "xlnx,versal"); > >>> + if (!np) > >>> + return 0; > >>> + } > >>> + of_node_put(np); > >>> + > >>> + return zynqmp_pm_init_finalize(); } > >>> + > >>> +late_initcall_sync(do_init_finalize); > >>> + > >>> static const struct of_device_id pm_of_match[] = { > >>> { .compatible = "xlnx,zynqmp-power", }, > >>> { /* end of table */ }, > >>> > >> > >> Arnd: are you fine with this way how to check that it runs on zynqmp > >> or versal? > > > > I might be missing something, but this sounds like the wrong way to do it. > > There is already a platform driver probed in the presence of the > > "xlnx,zynqmp-power" node in the same file. Wouldn't it be better to > > either check for the same node instead of an arbitrarily different set > > of SoC names, or to make the platform driver itself get registered > > form the late initcall? > > Rajan/Amit: On the top of my head I expect that you can't call it as late > initcall > because you need the first part earlier. > > Does it make sense to check same node? > There is and should be only one instance of this driver. > Isn't it easier just to setup one static variable instead of calling dt > functions > which will take time and result will be the same. [Rajan Vaja] Yes Michal, that make sense. We will make changes and will submit new version.
Thanks, Rajan > > Thanks, > Michal

