Hi Jianxin, I added three comments below from a quick glance at this driver (I didn't have time for a complete review) On Thu, Sep 19, 2019 at 2:11 PM Jianxin Pan <jianxin.pan@xxxxxxxxxxx> wrote: [...] > + pm_genpd_init(&dom->base, NULL, > + (match->domains[i].get_power ? > + match->domains[i].get_power(dom) : true)); .get_power is never NULL in this driver so the ": true" part is effectively a no-op [...] > +static const struct of_device_id meson_secure_pwrc_match_table[] = { > + { > + .compatible = "amlogic,meson-a1-pwrc", > + .data = &meson_secure_a1_pwrc_data, > + }, > + { } many drivers use a /* sentinel */ comment inside { } [...] > +arch_initcall_sync(meson_secure_pwrc_init); why arch_initcall_sync instead of builtin_platform_driver? $ grep -R arch_initcall_sync drivers/soc/ $ Martin