Hi Mark,


On 14 March 2014 05:52, Mark Rutland <mark.rutland@arm.com> wrote:
[Adding lakml and others with an interest in PSCI 0.2]

> +     pr_info("using static PSCI Function ID's\n");

It's probably worth stating which static IDs are in use, e.g. "using
standard PSCI 0.2 function IDs". Later versions might get more
functions, and being explicit from the start will make debugging easier
across kernel versions.

Also, it would be good to print out the return value of PSCI_VERSION to
notify the user which version of PSCI the implementation claims to be
conformant with.


Good idea.
 
> +     psci_function_id[PSCI_FN_MIGRATE] = PSCI_ID_CPU_MIGRATE;
> +     psci_ops.migrate = psci_migrate;

It would also be a good idea to hook up AFFINITY_INFO to a cpu_kill
callback from the start, to ensure implementors bother to implement it,
and such that we can make kexec safe(r).

If we rely on it from the start it's more likely that it will actually
get implemented, and it will highlight any dodgy PSCI 0.2
implementations while there's a chance they can be fixed.


Ok.
 
> -             pr_warning("missing \"method\" property\n");
> +             pr_warn("missing \"method\" property\n");

Unrelated change? (not that I'm against it).


checkpatch raised it.
 
> +static const struct of_device_id psci_of_match[] __initconst = {
> +     { .compatible = "arm,psci", .data = psci_of_init},
> +     { .compatible = "arm,psci-0.2", .data = psci_static_init},

This requires a binding document update, explaining exactly what this
string implies.


Ok.
 
> +     init_fn = (psci_initcall_t)matched_np->data;

Is an explicit cast necessary here?


Hm. I guess I added it because of void * data. Not needed. Will remove.
 

My comments for the 32-bit version apply here too.


Thanks for the quick review. I'll respin it in a day or so. Hopefully others get a chance to look at it in the mean time.
 
Cheers,
Ashwin