Message ID | 1400227438-27155-2-git-send-email-chander.kashyap@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 05/16/2014 10:03 AM, Chander Kashyap wrote: > This driver will be used by many big.Little Soc's. As of now it does > string matching of hardcoded compatible string to init the driver. This > comparison list will keep on growing with addition of new SoC's. > Hence add of_device_id structure to collect the compatible strings of > SoC's using this driver. > > Signed-off-by: Chander Kashyap <chander.kashyap@linaro.org> > Signed-off-by: Chander Kashyap <k.chander@samsung.com> Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org> > --- > drivers/cpuidle/cpuidle-big_little.c | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/drivers/cpuidle/cpuidle-big_little.c b/drivers/cpuidle/cpuidle-big_little.c > index b45fc62..4cd02bd 100644 > --- a/drivers/cpuidle/cpuidle-big_little.c > +++ b/drivers/cpuidle/cpuidle-big_little.c > @@ -163,14 +163,23 @@ static int __init bl_idle_driver_init(struct cpuidle_driver *drv, int cpu_id) > return 0; > } > > +static const struct of_device_id compatible_machine_match[] = { > + { .compatible = "arm,vexpress,v2p-ca15_a7" }, > + {}, > +}; > + > static int __init bl_idle_init(void) > { > int ret; > + struct device_node *root = of_find_node_by_path("/"); > + > + if (!root) > + return -ENODEV; > > /* > * Initialize the driver just for a compliant set of machines > */ > - if (!of_machine_is_compatible("arm,vexpress,v2p-ca15_a7")) > + if (!of_match_node(compatible_machine_match, root)) > return -ENODEV; > /* > * For now the differentiation between little and big cores >
diff --git a/drivers/cpuidle/cpuidle-big_little.c b/drivers/cpuidle/cpuidle-big_little.c index b45fc62..4cd02bd 100644 --- a/drivers/cpuidle/cpuidle-big_little.c +++ b/drivers/cpuidle/cpuidle-big_little.c @@ -163,14 +163,23 @@ static int __init bl_idle_driver_init(struct cpuidle_driver *drv, int cpu_id) return 0; } +static const struct of_device_id compatible_machine_match[] = { + { .compatible = "arm,vexpress,v2p-ca15_a7" }, + {}, +}; + static int __init bl_idle_init(void) { int ret; + struct device_node *root = of_find_node_by_path("/"); + + if (!root) + return -ENODEV; /* * Initialize the driver just for a compliant set of machines */ - if (!of_machine_is_compatible("arm,vexpress,v2p-ca15_a7")) + if (!of_match_node(compatible_machine_match, root)) return -ENODEV; /* * For now the differentiation between little and big cores