On Thu, Jan 31, 2019 at 10:27:49AM +0800, Joseph Lo wrote: > Currently, the DT of the idle states will be parsed first whether it's > compatible or not. This could cause a warning message that comes from if > the CPU doesn't support identical idle states. E.g. Tegra186 can run > with 2 Cortex-A57 and 2 Denver cores with different idle states on > different types of these cores. > > We fix it to check the compatible string before the parsing procedures. > So it can make sure it only goes through the idle states that the CPU > supported. > > Signed-off-by: Joseph Lo <josephl@xxxxxxxxxx> > --- > drivers/cpuidle/dt_idle_states.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/cpuidle/dt_idle_states.c b/drivers/cpuidle/dt_idle_states.c > index 53342b7f1010..4a528908abb3 100644 > --- a/drivers/cpuidle/dt_idle_states.c > +++ b/drivers/cpuidle/dt_idle_states.c > @@ -180,6 +180,11 @@ int dt_init_idle_driver(struct cpuidle_driver *drv, > if (!state_node) > break; > > + if (!of_device_is_compatible(state_node, matches->compatible)) { > + err = -EINVAL; > + break; > + } > + Does it make sense to use of_match_node to get the matching device id and just pass that to init_state_node instead of the complete array to find the match. -- Regards, Sudeep